美文网首页iOS技术交流iOS 开发iOS推送技术
iOS推送证书生成pem文件(详细生成过程)

iOS推送证书生成pem文件(详细生成过程)

作者: 上善若水jf | 来源:发表于2016-09-20 11:35 被阅读9363次

1、pem文件概述

     pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面介绍一下pem文件的生成。

2、生成pem文件步骤

1、打开钥匙串,选择需要生成的推送证书

2、将certificate和private key导出得到.p12文件

     2.1、生成证书apns-dev-cert.p12的p12文件,按照下面操作导出p12,桌面对应生成apns-dev-cer.p12文件

    2.2、生成证书对应的秘钥apns-dev-key.p12的p12文件,按照下面操作导出p12,桌面对应生成apns-dev-ker.p12文件。

3、将apns-dev-cert.p12和apns-dev-key.p12文件对应转化为apns-dev-cer.pem和apns-dev-key.pem文件

     3.1、打开终端,输入cd Desktop

 cd Desktop

    3.2、将apns-dev-cert.p12文件转换为pen格式,输入openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

      此处要求输入一个密码,输入123456.(此处为导出p12的保护密码),此时桌面会生成一个apns-dev-cert.pem文件

      3.3、将apns-dev-key.p12文件转换为pen格式,输入openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

     此处要求输入一个密码,输入123456.(此处为导出p12的保护密码)

此处要求设置一个保护密码,输入123456.

此处要求验证保护密码,再一次输入123456,此时桌面会生成一个apns-dev-key.pem文件

4、将apns-dev-cert.pem和apns-dev-key.pem文件合成为apns-dev.pem文件,此文件将给php后台用于连接苹果服务器时需要使用,在终端继续输入:cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem,此时桌面生成一个apns-dev.pem

cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

在终端测试:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem

终端最后显示以下内容,表示配置pem文件成功,

.............................

Key-Arg   : None

Start Time: 1467854873

Timeout   : 300 (sec)

Verify return code: 0 (ok)

相关文章

  • iOS推送证书生成pem文件(详细生成过程)

    1、pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,...

  • iOS推送证书生成pem文件

    pem文件概述 pem文件生成步骤 将证书导出生成 p12 文件打开钥匙串, 选择需要生成的推送证书.1.png右...

  • ios 推送证书.pem文件生成过程

    这里以正式环境的推送证书为例子,推荐使用 (小编亲测好用) 方案1: 1.导出推送证书的.p12文件 apns_...

  • 生成pem和key.pem

    1、pem文件概述 2、生成pem文件步骤 1、打开钥匙串,选择需要生成的推送证书 2、将certificate和...

  • 百度云推送证书无效解决方案

    公司的iOS推送证书即将到期,重新生成一个证书,按照文档制作出pem文件 上传到百度云推送的时候提示证书无效。经过...

  • Mac 将p12转换pem问题

    iOS推送证书创建见其他教程 公钥生成 推送证书cer转pem 也可以用钥匙串中证书导出p12,然后转为pem公钥...

  • iOS推送证书生成pem文件(详细步骤)

    1、pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面...

  • 生成推送证书pem文件

    1.先生成p12文件 首先你需要在你的苹果开发者账号里面新建一个 AppID 进行 push设置 .创建测试证书和...

  • ios推送证书pem生成

    在钥匙串中把推送证书导出成p12格式 cer2.p12 然后执行如下命令 ![0TA]@T3A616$M(KR9V...

  • iOS推送证书生成pem文件

    1、pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面...

网友评论

  • 硅谷小虾米:写的不是很具体啊
  • 小毛纯一郎:结果他们就把锅推给我了,我再怎么验证cert.pem和key.pem都是通过了的。但是后台推送就是推送不过来。
    小毛纯一郎:@上善若水jf 后台都不知道怎么回事,那怎么办了?还不是把锅推给前端来。
    上善若水jf:@小毛纯一狼 后台报错总有原因吧,让后台查一下
  • 小毛纯一郎:兄弟,你能不能把合的pem来进行验证一下啊,后台老是报私钥解析失败
    上善若水jf:@小毛纯一狼 是的,后台也是一样的,可以使用加密的方式,也可以使用不加密,你需要跟后台商量一下就可以。
    小毛纯一郎:@滴了个宝 后台要注意几点: 1.后台推送时,苹果中心的接收网址是有开发和生产两个不同的,这个需要配置好。2.一般解私钥错误是解析的方式有误,这里会有两种错误,一种是确实是解析的过程有误,我们的给的pem包含证书pem有个密码,私钥的pem也有一个密码,后台在解析的时候最原始的解密是两步,就是会有两步需要密码的代码的。另一种就是要检查一下包名你发对没有,我们后台当时就遇到一次,包名没有正确导致了解析也是报私钥错误。

    实在不行的话,你就叫他用我写的第二种方法,分开生成pem,然后生成的私钥的pem为无加密的,再合成一个。后台就只需要输入验证密码和包名要对应上,发给苹果APNS时的网址要正确就可以了。
    西凉__:我们后台也是报这个 怎么解决的?
  • 25dad3564998:您好 我是一个iOS菜鸟 我将P12的两个文件导出来以后 在终端输入后总出现No such file or directory错误 但是我在那个文件目录下有这个文件 难道是我文件下载错误还是怎么样了吗?
  • 2da421a5fef7:转pem那里不对,这种方法转出来的百度控制台里面一直报证书无效。
    上善若水jf:@2da421a5fef7 可以按照上面的方法在终端验证一下pem是无效
  • suoluomen:我觉得,你最好把这篇帖子删除掉!有点坑
    上善若水jf:@guyuewenyang 谢了,有时间重新整理一下
    suoluomen:@上善若水jf
    在钥匙串中找到相应的证书,直接整体导出p12,不用分别导出两个 p12 文件,然后终端执行下面代码:
    openssl pkcs12 -in XXX.p12 -out XXX.pem -nodes

    前面有同行给出了一个链接:http://push.baidu.com/doc/ios/api ,你没有看吗???
    上善若水jf:@guyuewenyang 如果有不足之处,请谅解,这个方法本人亲身试过有用,才写下来,你如果有什么好的方法可以推荐一下,感谢!
  • 吉林天师:楼主,你的帖子很好,直接复制就可以用。就我的错误说说,在创建发布pem时,第二步,生成pem key时,第一次输入密码时,忘了,要先输入p12密码,在输入pem key。忘后来者,别掉坑里
  • 小毛纯一郎:可以加个QQ吗,我照 着你说的做好了pem,可是后台还是测试不对。我想再肯定一下。
  • AlexQian:最后终端测试:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev.pem -key apns-dev-key.pem,里面的-cert 对应的应是最后cat合成出来的apns-dev文件,而不是直接.p12生成的apns-dev-cert.pem
  • 空龍:你好,终端测试代码那里应该是: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem。少了2个空格 connect和gateway之间要有空格,2195和-cert之间也要空格
    空龍:2.1和2.2里面的文件名字不对,apps应该改成apns
    空龍:我就是复制的,验证证书一直错误
  • 650e7290ac36:你好,我按照你的流程配置下来还是证书无限。终端测试后的打印是:localhost:Desktop Tyuan$ openssl s_client -connectgateway.sandbox.push.apple.com:2195-cert apps-dev-cer.pem -key apns-dev-key.pem
    unknown option -connectgateway.sandbox.push.apple.com:2195-cert
    usage: s_client args

    -host host - use -connect instead
    -port port - use -connect instead
    -connect host:port - who to connect to (default is localhost:4433)
    -verify depth - turn on peer certificate verification
    -cert arg - certificate file to use, PEM format assumed
    -certform arg - certificate format (PEM or DER) PEM default
    -key arg - Private key file to use, in cert file if
    not specified but cert file is.
    -keyform arg - key format (PEM or DER) PEM default
    -pass arg - private key file pass phrase source
    -CApath arg - PEM format directory of CA's
    -CAfile arg - PEM format file of CA's
    -reconnect - Drop and re-make the connection with the same Session-ID
    -pause - sleep(1) after each read(2) and write(2) system call
    -showcerts - show all certificates in the chain
    -debug - extra output
    -msg - Show protocol messages
    -nbio_test - more ssl protocol testing
    -state - print the 'ssl' states
    -nbio - Run with non-blocking IO
    -crlf - convert LF from terminal into CRLF
    -quiet - no s_client output
    -ign_eof - ignore input eof (default when -quiet)
    -no_ign_eof - don't ignore input eof
    -ssl2 - just use SSLv2
    -ssl3 - just use SSLv3
    -tls1 - just use TLSv1
    -dtls1 - just use DTLSv1
    -fallback_scsv - send TLS_FALLBACK_SCSV
    -mtu - set the link layer MTU
    -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol
    -bugs - Switch on all SSL implementation bug workarounds
    -serverpref - Use server's cipher preferences (only SSLv2)
    -cipher - preferred cipher to use, use the 'openssl ciphers'
    command to see what
    上善若水jf:请问你配置到哪一步出错的
  • 李长鸿:写的太好了!有些单词拼错了:smile:
    李长鸿:@上善若水jf 2.2、生成证书对应的秘钥apns-dev-key.p12的p12文件,按照下面操作导出p12,桌面对应生成apns-dev-ker.p12文件。 应该是生成 apns-dev-cer.p12文件
    上善若水jf:@李长鸿 请帮忙指出,谢谢
  • zzer:云里雾里的 完全看不懂 不知道在说什么
    2.2里还出了个apps-dev-ker.p12????
    Rdxer:@gelinxiao 6666 我就记得这个 幸好下来翻评论
    gelinxiao:根本不需要一个证书展开导出两个p12,一个cer,一个key,再合并。太麻烦,不知道谁想的招。证书不用展开,直接导出一个p12,再转化为pem就行了。参考:http://push.baidu.com/doc/ios/api
    上善若水jf:如果不太清楚,可以百度一下

本文标题:iOS推送证书生成pem文件(详细生成过程)

本文链接:https://www.haomeiwen.com/subject/vixoettx.html