Felkészülés alma push értesítést ssl tanúsítvány heximal blog
Felkészülés az Apple Push Notification SSL tanúsítvány
Létre kell hozni egy tanúsítvány aláírására irányuló kérést. Mindez a szabványos OS X alkalmazás úgynevezett „kulcstartó Access» (kulcstartó). Fuss, és azonnal egy csomó menü gomb -> Certificate Assistant -> kérése tanúsítványt egy tanúsító hatóság.
Majd kattintson a Tovább gombra, válasszon egy helyet a lemezen, ahol a fájl mentésre kerül lekérdezésre. Menj vissza a fejlesztő portál «létrehozása egy tanúsítvány Bejelentkezési kérés (CSR)» oldal, nyomja meg a Folytatás ott, azon az oldalon, amely megjelenik, válassza a kérés fájlt, és kattintson generálása. Egy kis gondolkodás rendszer egy linket letölteni a generált tanúsítványt, amit csinálnak.
A rendszer arra kéri, hogy mentse a tanúsítvány fájlt aps_development.cer. Azt tanácsolom, hogy hozzon létre egy mappát, ahol menteni minden érintett. Embed feedcsoportban nem feltétlenül a legfontosabb
3. Ezután fel kell töltenie a privát kulcsot. Nyílt kulcstartó Access. Találunk a kulcsot, és válassza ki a menüből válassza a File -> Export Object.
A rendszer arra kéri, hogy adjon meg egy kulcsszót - egy jelszót hozzáférést a privát kulcsot, akkor is, ha valaki megkaparintja export kulcsát, akkor nem tudják használni. Emlékezz ez a mondat, jelöljük azt pass1.
A rendszer arra kéri, hogy mentse a kulcsot kiterjesztésű fájl .p12 (legyen KeyName.p12). Ugyanakkor továbbra is meg kell adnia a jelszót a kulcstartó.
4. Ezután meg kell konvertálni maga a tanúsítvány és a kulcs PEM formátumban (kulcstartó eltávolítja tárgyak DER formátumban). Azt nem tudom, hogy ez volt az oka, csak az OpenSSL könyvtár, amelyen keresztül kölcsönhatásba lépnek az Apple Push Notification Service (APN) a php, sokkal valószínűbb, hogy működjön együtt a fájlokat a PEM formátumban. A végrehajtás az OpenSSL jelen van a legtöbb * nix rendszerek, legalábbis OS X és FreeBSD ez alapfelszereltség. Nyiss egy terminál ablakot és tegye a következőket.
amikor a második parancs konzolt arra kéri, hogy adjon meg egy kulcsfontosságú mondatot háromszor. Az első alkalommal meg kell adnia a jelszót, hogy adja meg, amikor exportálja a kulcs (pass1). A második és a harmadik alkalommal - egy új jelszót, amely létrehoz egy PEM gombot. Mi lesz feltételesen nevezni pass2. Ha teszi, ugyanaz, mint pass1 semmi bűnügyi nem.
Akkor meg kell ragasztani a két fájl.
és végül kap APN-dev.pem fájlt, hogy a jövőben, és fogják üzemeltetni a szerveren.
By the way, itt lehetőség van, hogy ellenőrizze, hogy az SSL-tanúsítvány terheletlen / átalakítani megfelelően. A konzol toborozni
Ha a szolgáltatást a gyártási bizonyítvány, meg kell adni a domain gateway.push.apple.com helyett gateway.sandbox.push.apple.com
Ha minden rendben van, a konzol fog adni sok-sok szöveget.
Aztán át a szerver, másolja a tanúsítványt APN-dev.pem és hozzon létre vele php-script. hajtják végre közvetlenül e-mail Push-üzenetek
Itt meg kell figyelni, hogy a következő árnyalatokat.
stream_context_set_option ($ stream_context 'ssl', 'jelszót', 'pass2');
Ezen a ponton, akkor regisztrálnia kell a legfontosabb mondat pass2 (lásd. Fent). Egyébként OpenSSL minden alkalommal kérni fogja, hogy adja meg kézzel.
$ Payload = preg_replace_callback ( '/ \\\\ u ([0-9A-f]) / i',
'Replace_unicode_escape_sequence', $ teherbírás);
Ezt annak érdekében, hogy növelje a tényleges hossza az üzenetet. Mivel php function json_encode alakítja az összes nem-ASCII karaktereket unicode-lényege, hogy 5-ször csökkenti, és így nem egy nagy maximális hossza Push-üzenetek (256 karakter).
Természetesen a többi üzleti logika eltérő lehet, például egy listát a push-tokenek nem állandó array $ device_tokens. Ez a kódrészletet pusztán az emlékeztető az alapelvek a munka a php és az OpenSSL egy push-üzenetek küldésére.
Ha mindez megtörtént, akkor az összes ugyanolyan lehet tenni gyártmányigazolás. közzététele előtt az alkalmazás.
1) A bejelentés szerint küldött php, nem a hibák ellenőrzéséhez. Apple kiterjesztette protokoll, amely visszaadja a kódot, ha hiba történik. Mennyire rossz? Tegyük fel, hogy van jelzőt az adatbázisban eszközök és egyikük érvényes. Ha küld egy eszköz kapcsolódási megszűnik figyelmeztetés nélkül. És akkor a hurok továbbra is küld a többi eszközt. Kiderült, hogy te küld egy értesítést, hogy egy része az eszközök nem éri el, és akkor nem tudom, hogy milyen időpontban a kapcsolat megszakadt. Szóval nem tudom az okát