5

Ich habe die Push-Benachrichtigung für meine Anwendung für die Entwicklung versucht und es funktioniert gut. Wenn ich die .p12 Datei der Produktion (Verteilung) erzeuge, wird es erstellt. Nach dem deployment.pem-Datei auf dem Server wirft es und Fehler.iOS Push-Benachrichtigungen funktionieren nicht für die Verteilung

OpenSSL :: SSL :: SSLError (SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3 ITZUNG Ticket A s lesen Server: SSLv3 Alarm Zertifikat unbekannt):“}

Server: RoR (Rubin on Rails) Jede Hilfe wäre sehr beträchtlich sein

. Hinweis:... Für die Entwicklung .p12 es funktioniert gut Das Problem ist, wenn ich Distribution P12-bin bereitstellen Bitte vorschlagen, was kann ich fehlt

Danke und Grüße

Antwort

3

@Learner

Wenn alle anderen Optionen nicht arbeiten, dann sollten Sie prüfen, wie Sie Ihre p12-Datei exportieren. Sie sollten die p12-Datei exportieren, die mit Apple Produktionszertifikat verbunden ist, ich hoffe, es wird funktionieren .. wie es für mich gearbeitet hat !!!

1

Wenn Sie Überprüfung überspringen möchten, können Sie diese verwenden.

require 'net/http' 
    require 'openssl' 

    class Net::HTTP alias_method :origConnect, :connect 
     def connect 
      @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE 
      origConnect 
     end 
    end 

Quelle: How to get rid of OpenSSL::SSL::SSLError

Aber da wir sicher sein wollen, sollten Sie die

Code

ENV['SSL_CERT_DIR'] = '/usr/share/ca-certificates/'

Weitere Lösungen bei OmniAuth & Facebook: certificate verify failed

7

Kontrolle dieser in Ihrem Sever folgen verwenden

gateway.push.apple.com, Port 2195 für den Vertrieb

gateway.sandbox.push.apple.com, port 2195

  1. Log-in auf das iPhone Developer Program Portal.
  2. Wählen Sie die App IDs aus dem Menü auf der rechten Seite.
  3. Erstellen Sie eine App-ID ohne Platzhalter.
  4. Klicken Sie auf den Link Konfigurieren neben dieser App-ID und dann auf die Schaltfläche, um den Assistenten zum Generieren eines neuen Development Push SSL-Zertifikats zu starten. für die Entwicklung (oder), um ein neues Production Push SSL-Zertifikat für die Verteilung zu generieren.
  5. Herunterladen dieses Zertifikat und klicken Sie doppelt auf aps_developer_identity.cer es in Ihrem Schlüsselbund
  6. Einführung Keychain Assistent importieren und Push-Dienste auf der linken Seite erweitern Apple-Entwicklung auf Eigene Zertifikate klicken und wählen Sie Push-Dienste von Apple Entwicklung
  7. Rechts- Klicke und wähle "1 Elemente exportieren ..." und speichere als apns-cert.p12. UND Ihr privater Schlüssel im selben Erweiterungsbereich Klicken Sie mit der rechten Maustaste und wählen Sie "1 Elemente exportieren ..." und speichern Sie sie als apns-key.p12.

8.Open-Terminal und wechseln Sie in Position verwendet P12 zu speichern und das PKCS12 Zertifikat Bündel in PEM-Format mit diesem Befehl

i) umwandeln.openssl pkcs12 -clcerts -nokeys -aus apns-cert.pem -in apns-cert.p12 ii). openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12 hier muss man einen schlüssel für den zugriff auf den php-code geben.

Remove Passwort

iii). openssl rsa -in apns-key.pem -aus apns-key-noenc.pem Hier müssen Sie den gleichen Schlüssel für Remove passphrase eingeben.

schließlich iv). Katze apns-cert.pem apns-key-noenc.pem> apns-dev.pem.

Jetzt können Sie diese PEM-Datei als Ihr Zertifikat in ApnsPHP verwenden!

0

Ich löste es. Es war ein .p12 Dateifehler. Ich habe nicht die .p12 erstellt, die ich benutzen musste.

Danke !!

0

Ich war gem 'rpush', die pem-Datei aus dem Ordner Anmeldeinformationen & in der Datenbank gespeichert nahm. Meine Lösung war, alle alten Rpush :: Apns :: App-Datensätze aus der Datenbank zu löschen und neu erstellte Datensätze nach der Aktualisierung der PEM-Datei in meinem Anmeldedaten-Ordner.

app = Rpush::Apns::App.new 
app.name = "ios_app" 
app.certificate = File.read("/path/to/sandbox.pem") 
app.environment = "sandbox" # APNs environment. 
app.password = "certificate password" 
app.connections = 1 
app.save! 

n = Rpush::Apns::Notification.new 
n.app = Rpush::Apns::App.find_by_name("ios_app") 
n.device_token = "..." # 64-character hex string 
n.alert = "hi mom!" 
n.data = { foo: :bar } 
n.save! 
Verwandte Themen