При попытке отправить push-уведомление из моего приложения rails я получаю это. Я убедился, что маркер устройства и .pem файл действительны с командойApple Push Notification/Ruby OpenSSL Ошибка
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_development.pem -key aps_development.pem
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read finished A: tlsv1 alert internal error
from /Library/Ruby/Gems/2.0.0/gems/houston-2.2.3/lib/houston/connection.rb:44:in `connect'
from /Library/Ruby/Gems/2.0.0/gems/houston-2.2.3/lib/houston/connection.rb:44:in `open'
from /Library/Ruby/Gems/2.0.0/gems/houston-2.2.3/lib/houston/connection.rb:19:in `open'
from /Library/Ruby/Gems/2.0.0/gems/houston-2.2.3/lib/houston/client.rb:40:in `push'
Это сообщение об ошибке невероятно расплывчатое, не может понять, что происходит.
См. ["Проверить ошибку: num = 20" при подключении к gateway.sandbox.push.apple.com] (http://stackoverflow.com/a/23351633/608639). Вероятно, ваша проблема связана с сертификатом клиента. Как это называется сертификатом и закрытым ключом под именем aps_development.pem? – jww
Это решило проблему, если я буду использовать open openssl через командную строку, но я использую драгоценный камень (Хьюстон), который использует openssl, и проблема все еще сохраняется. Есть идеи? – blee908
Извините, я не знаю о Ruby. Я сдался на это давно. Слишком сложно выполнить простые задачи, связанные с безопасностью, например, установить версию протокола для TLS 1.0 или задать имя сервера для SNI. Можете ли вы проверить, что ваш Gem использует TLS 1.0 или выше, он использует Server Nam Indication (SNI), и он использует сертификат клиента? Wireshark сможет рассказать, потому что они доступны в 'ClientHello', прежде чем шифрование начнется. – jww