5

Próbowałem powiadomienia Push dla mojej aplikacji do programowania i działa poprawnie. Kiedy generuję plik produkcyjny (dystrybucja) .p12, jest on tworzony. Po wdrożeniu pliku .pem na serwerze jest to rzucanie i błąd.Powiadomienia push w systemie iOS nie działają dla dystrybucji

OpenSSL :: SSL :: SSLError (SSL_connect powrócił = 1 errno = 0 stan = SSLv3 czytać serwera s ession biletów A: SSLv3 certyfikat alert nieznany):”}

Serwer: RoR (Ruby on Rails) Każda pomoc będzie bardzo odczuwalny

Uwaga:.... Dla rozwoju .p12 to działa poprawnie problem jest, gdy mam rozmieszczanie .p12 dystrybucja Proszę zasugerować co może mi brakować

Dzięki i Pozdrawiam

Odpowiedz

3

@Learner

Jeśli wszystkie inne opcje nie działają wówczas należy sprawdzić, w jaki sposób są eksportowane do pliku p12. Powinieneś wyeksportować plik p12, który jest powiązany z certyfikatem produkcyjnym Apple, mam nadzieję, że zadziała .. jak dla mnie pracował !!!

1

Jeśli chcesz przejść weryfikację, można to wykorzystać.

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 

źródło: How to get rid of OpenSSL::SSL::SSLError

Ale ponieważ chcemy być bezpieczne należy użyć śledzić

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

Więcej rozwiązań na OmniAuth & Facebook: certificate verify failed

7

sprawdzić w kodzie sever

gateway.push.apple.com, port 2195 do dystrybucji

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

  1. Zaloguj się w iPhone Developer Program Portal.
  2. Wybierz identyfikatory aplikacji z menu po prawej stronie.
  3. Utwórz identyfikator aplikacji bez symbolu wieloznacznego.
  4. Kliknij łącze Konfiguruj obok tego identyfikatora aplikacji, a następnie kliknij przycisk, aby uruchomić kreatora, aby wygenerować nowy certyfikat SSL Development Push. do opracowania (lub) do wygenerowania nowego certyfikatu SSL Production Push do dystrybucji.
  5. Pobierz ten certyfikat i kliknij dwukrotnie na aps_developer_identity.cer zaimportować go do pęku kluczy
  6. Wprowadzenie Brelok Assistant i kliknij Moje Certyfikatów po lewej Rozwiń Jabłko Rozwoju przekazywanych Services i wybierz jabłko push rozwój usług
  7. Right- kliknij i wybierz "Eksportuj 1 elementy ..." i zapisz jako apns-cert.p12. I twój klucz prywatny w tym samym obszarze rozwijanym Kliknij prawym przyciskiem myszy i wybierz "Eksportuj 1 elementy ..." i zapisz jako plik apns-key.p12.

8.Open Terminal i zmień katalog na miejscu stosowanego zapisać .p12 i konwertować świadectwie wiązkę pkcs12 w formacie PEM poleceniem

i).openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12 ii). openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12 tutaj musisz podać klucz dostępu do kodu php.

Usuń hasło:

iii). openssl rsa -in apns-key.pem -out apns-key-noenc.pem tutaj musisz podać ten sam klucz do Usuń hasło.

wreszcie iv). cat apns-cert.pem apns-key-noenc.pem> apns-dev.pem.

Teraz możesz użyć tego pliku PEM jako swojego certyfikatu w ApnsPHP!

0

Rozwiązałem to. Był to błąd pliku .p12. Nie tworzyłem pliku .p12, którego musiałem użyć.

Dzięki!

0

używałem gem „rpush”, która miała PEM plik z folderu poświadczenia & przechowywać go w bazie danych. Moim rozwiązaniem było usunięcie wszystkich starych rekordów Rpush :: Apns :: App z bazy danych i rekordy regenerowane po zaktualizowaniu pliku pem w moim folderze poświadczeń.

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!