Ruby on rails Apple推送通知/Ruby OpenSSL错误

Ruby on rails Apple推送通知/Ruby OpenSSL错误,ruby-on-rails,ruby,openssl,apn,Ruby On Rails,Ruby,Openssl,Apn,当尝试从我的rails应用程序发送推送通知时,我得到了这个消息。我使用该命令确保设备令牌和.pem文件有效 openssl s_client-connectgateway.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: tls

当尝试从我的rails应用程序发送推送通知时,我得到了这个消息。我使用该命令确保设备令牌和.pem文件有效

openssl s_client-connectgateway.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'

此错误消息非常模糊,无法确定发生了什么。

当您收到此错误时
OpenSSL::SSL::SSLError:SSL\u connect returned=1 errno=0 state=SSLv3 read finished A:tlsv1 alert internal error
表示您的证书有问题。证书或密码已过期

只要更新你的苹果推送通知证书,你就应该很好了

附加说明:
openssl
命令并不能说明太多,如果您遇到需要添加
-CApath
-CAfile
(或将该路径传递给ENV)可能会产生误导的情况


希望这有帮助。我花了将近一个星期来整理这个问题

相关,请参见。您的问题可能与客户端证书有关。证书和私钥都被命名为aps\u development.pem?这解决了通过命令行使用openssl的问题,但我使用的是使用openssl的gem(休斯顿),问题仍然存在。有什么想法吗?对不起,我不知道Ruby的事。我很久以前就放弃了。执行简单的安全相关任务太难了,比如将协议版本设置为TLS1.0或为SNI设置服务器名称。您能否验证您的Gem是否使用TLS 1.0或更高版本、是否使用服务器Nam指示(SNI)以及是否使用客户端证书?Wireshark能够分辨出来,因为在加密开始之前,
ClientHello
中提供了它们。这里有一些相关的问题:,我不确定它们是否同时适用于Ruby和Gems;或者只是Ruby本身。我遇到了同样的问题。你确定你的ruby使用的是正确版本的openssl吗?请尝试确保:
ruby-ropenssl-e'puts OpenSSL::OpenSSL\u VERSION'