dimanche 24 octobre 2010

Créer un certificat .PEM à partir d'un certificat Apple .CER

Dans un post précédant, je donne la marche à suivre pour récupérer un certificat de notifications pour application iPhone. Une fois ce certificat .cer récupéré il n'est pas exploitable directement par la plupart des logiciels. Par exemple en php, il faut créer un fichier .pem pour pouvoir se connecter avec le certificat sur le serveur de notifications apple.

La première étape consiste à exporter le certificat apple .cer depuis l'application "Trousseau d'accès".
Dans l'application sélectionnez l'onglet "Certificats", puis sélectionnez les deux lignes qui correspondent au certificat de notification que vous venez de créer :

Export de certificat .cer Apple
Vous obtenez alors un fichier .p12
Pour convertir ce fichier .p12 en .pem il vous faudra lancer les commandes suivantes dans Terminal :

openssl pkcs12 -clcerts -nokeys -out cert.pem -in certificat.p12
openssl pkcs12 -nocerts -out key_crypt.pem -in certificat.p12
openssl rsa -in key_crypt.pem -out key.pem
cat cert.pem key.pem > final.pem
Vous aurez alors un fichier .pem utilisable par exemple dans php de la façon suivante :
<?php
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', self::$notificationCertificate);
$connect = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if (!$connect) die("Impossible de se connecter : $errorString");
fwrite($connect, $contenu_notification);
fclose(self::$notifConnect);
?>

Aucun commentaire:

Publier un commentaire