2012-04-09 78 views
12

我试图做推送通知我的应用程序和该链接下面 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12终端误差建立安全连接:

我的系统已与远程登录成功连接,但是当我输入连接的SSL证书和私钥查询则发现了一个错误

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem 
unable to load client certificate private key file 
1301:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/pem/pem_lib.c:648:Expecting: ANY PRIVATE KEY 

任何人能告诉我是什么类型的错误,什么是它的解决方案?

在此先感谢

回答

12

下面的命令是不够好,验证密钥/证书:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert push_development.pem 

的关键部分是选择这两个证书私钥从钥匙串访问导出的.p12(当你将被要求3个密码,一个用于.p12,一个用于证书,一个用于私钥)。

要转换的.p12为.pem,从Apple按照指示:

openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes 
+0

仍然无助于“无法加载客户端证书私钥文件”。 'openssl s_client -connect api.development.push.apple.com:443 -cert my.pem' – YumYumYum 2017-12-28 12:25:56

13

起初我也面临这个问题。

我们有两个文件

1)一个是从苹果 2)另1是从keychain access与我们刚刚创建的通用名称aps_development.cer

之后,两者都将其转换为.pem文件。例如,cert.pemkey.pem。 后,使用下面的命令

cat cert.pem key.pem > ck.pem 

起初我openssl可以使用下面的命令合并这两个文件。

openssl s_client -connect gateway.sandbox.push.apple.com:2195 
    -cert cert.pem -key key.pem 

这会将您提到的错误返回给我。 之后我尝试使用

openssl s_client -connect gateway.sandbox.push.apple.com:2195 
    -cert cert.pem -key ck.pem 

然后它的工作已经完成。希望这可以帮助。

+4

我也做了同样的事情,但问题仍然存在任何建议THX – sailing 2013-03-28 06:31:23

+0

我?尝试了提议解决方案,但错误仍然存​​在。任何其他建议? – 2013-05-30 08:08:08

6

我面临同样的问题,而我产生了企业分配一个PEM文件,但后来我想通了,我产生对iPhone的发布证书密钥的P12文件虽然我应该已经产生了对P12 Apple制作iOS Push服务键。希望这可以解决问题,如果任何人使用分配密钥。

2

您好,请遵循以下命令。 第一步 OpenSSL的PKCS12 -clcerts -nokeys退房手续developer_key.pem -in developer_key.p12

注:只需将终端上的文件路径...

第二步 OpenSSL的PKCS12 -nocerts -out apns_key.pem -in apns_key.p12

步骤3 OpenSSL的PKCS12 -in developer_key.p12 -out developer_key.pem -nodes -clcerts

步骤4 OpenSSL的PKCS12 -in apns_key.p12 -out apns_key.pem -nodes -clcerts

步骤5 猫apns_key.pem developer_ket.pem> developer.pem

做同样的步骤,分配证书

创建developer.pem和distribution.pem后

请核实以下命令两个文件。

第六步 的OpenSSL的s_client.First -connect gateway.sandbox.push.apple.com:2195 -cert developer.pem -debug -showcerts -CAfile“Entrust.net.Certification管理局(2048).PEM

2

的通知。是密码短语必须大于3个字符

我刚才固定的密码短语是:d

相关问题