天天看点

生成pem证书

生成pem证书的原因:我们的服务器链接苹果服务器也是需要证书的,但是我们直接生成的证书windows系统不识别,所以我们需要生成一个后缀为pem的证书文件。下面将记录下来制作步骤,方便后期查看!

一、从钥匙串中导出秘钥

打开钥匙串访问(路径:应用程序 ----> 钥匙串访问),找到相应的证书,点击前面的小箭头展开,右击,导出p12文件,然后输入相关的密码即可,如下图所示:

生成pem证书

那么我们的准备工作就已经完成。在桌面上一共生成了三个文件,一个是CSR请求文件,一个是aps_production.cer的SSL证书文件,还有一个是刚生成的Push.p12秘钥文件。

二、制作pem证书

打开终端(路径:应用工具------>实用工具------>终端),cd到放上面3个文件的文件夹下面,方法:cd 将文件夹拖到此处。

a).把.cer的SSL证书转换为.pem文件,执行命令如下:

openssl x509 -in aps_production.cer -inform der -out PushChatCert.pem

在相应的文件夹下生成一个pem的文件:PushChatCert.pem

b).把私钥Push.p12文件转化为.pem文件,执行命令如下:

openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12

这里需要我们输入密码,这个密码也就是我们导出p12文件时的密码,然后,需要我们对生成的pem文件设置一个密码,这里我们推荐和上面用相同的密码,以免搞混了,这里的密语是要告诉我们服务器的。这样,在相应的文件夹里又生成一个pem文件:PushChatKey.pem

终端显示如下:

生成pem证书

c).将证书和私钥合并,即 将上面的2个pem文件合并成一个,执行命令如下:

cat PushChatCert.pem PushChatKey.pem > ck.pem

在相应的文件夹下生成一个pem文件:ck.pem

此时证书已经制作完成!下面我们将测试证书与苹果服务器的链接状况

三、测试证书

执行下面命令:

telnet gateway.sandbox.push.apple.com 2195(apns的测试环境)

telnet gateway.push.apple.com 2195(apns的正式环境)

它将尝试发送一个规则的,不加密的连接到APNS。如果你看到下面的反馈,那说明你的MAC能够到达APNS。按下Ctrl+C关闭连接。如果得到一个错误信息,那么你需要确保你的防火墙允许2195端口,一般这里都不会出现什么问题。

终端显示如下:

生成pem证书

下面我们使用生成的SSL证书和私钥来设置一个安全的链接去链接苹果服务器,执行命令如下:

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

执行之后需要输入密码,就是上面我们设置的密码即可。

你会看到一个完整的输出,让你明白OpenSSL在后台做什么。如果链接是成功的,你可以随便输入一个字符,按下回车,服务器就会断开链接,如果建立连接时有问题,OpenSSL会给你返回一个错误信息。

输出结果如下,则说明是正确链接了:

生成pem证书