Notification push iPhone impossible de se connecter au serveur SSL
-
22-07-2019 - |
Question
J'ai suivi les instructions sur:
Comment créer un serveur fournisseur de notifications Apple Push Lorsque j'exécute le script php sur mon MacOSX ou Windows à l'aide de Parallel Desktop, le script fonctionne. Mais dès que je le lance sur mon hébergement, je reçois le message suivant:
Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Connection timed out) in provider.php on line 23
Failed to connect 110 Connection timed out
Est-ce que cela a à voir avec les certificats? Si tel est le cas, comment puis-je créer un certificat qui pourrait fonctionner sur l’ordinateur où est situé mon hébergement?
La solution
Votre fournisseur d'hébergement n'autorise probablement pas les connexions sortantes vers les ports 2195 et 2196. La plupart des fournisseurs d'hébergement partagé n'ont pas ces ports ouverts. Vous devrez peut-être obtenir un VPS ou vous pouvez également essayer UrbanAirship, qui fournit une intégration avec Apple Notification Service et qui est gratuit pour une certaine limite par mois.
Autres conseils
Oui, vous avez besoin d’un certificat. Ceci est expliqué dans la documentation Apple. Une prise, vous aurez probablement besoin de convertir le cert au format .pem. Le certificat .pem doit inclure à la fois le certificat et la clé privée RSA.
Voici un bon site à lire: http://www.macoscoders.com/2009/05/17/iphone-apple-push-notification-service-apns/
Mon pem ressemble à:
Bag Attributes
friendlyName: Apple Development Push Services: <my data>
localKeyID: <my local key in hexascii>
subject=/UID=com.my.push.sandbox1/CN=Apple Development Push Services: <my data>/C=US
issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
-----BEGIN CERTIFICATE-----
<my certificate data omitted>
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
<my key data omitted>
-----END RSA PRIVATE KEY-----
J'ai trouvé que la solution la plus simple et la moins chère était de demander une adresse IP dédiée à votre hébergeur. Chez Blue Host, c’était 2,50 $ par mois. Avec cette adresse IP dédiée, ils étaient disposés à ouvrir les ports 2195 et 2196.