zulip: APNS package is out of date, causes authentication error

Zulip currently relies on the apnsclient package for sending Apple push notifications. Unfortunately, that package hasn’t been actively maintained since 2014.

This has become a problem as apnsclient still uses OpenSSL.SSL.SSLv3_METHOD, which Apple stopped supporting in October of 2014. As such, if you build the current Zulip as-is, Apple will reject your attempts to send push notifications.

The simple solution (aka no changes to the Zulip code base) is to edit the apns.py file within the apnsclient directory directly, changing:

self._context = OpenSSL.SSL.Context(OpenSSL.SSL.SSLv3_METHOD)

to

self._context = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)

Longer term, we should consider replacing the apnsclient package with a more supported version and updating the methods in /zerver/lib/push_notifications.py

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 15 (9 by maintainers)

Commits related to this issue

Most upvoted comments

I guess https://github.com/djacobs/PyAPNs is probably a reasonable option