@[TOC] 生成push证书
在ios应用中如果要使用推送功能,需要在apple官网生成一个推送的证书用于鉴权; 与打包证书类似,推送证书也分为开发版和正式版 之前一直在用开发版的证书,直到上线后有用户反馈ios系统收不到推送,才意识到没有配置正式的push证书
环境: 1.macOS系统电脑 2.apple Store账户电子邮箱
步骤: 1.生成证书签名(CSR)请求文件CertificateSigningRequest.certSigningRequest 2.创建推送证书cer文件 3.安装证书秘钥、导出p12文件 4.将第2步的cer文件转换为pem格式的文件 5.将第3步的p12文件转换为pem格式的文件 6.将4、5步得到的两个pem文件合并为一个pem文件 7.将第6步得到的pem文件转换为p12文件
遇到问题:第3步 1."Apple Push Services:XXX.XXX.XXX"证书不受信任 2.导出p12文件是灰色的
具体操作步骤:
打开macOS 上“钥匙串访问”–钥匙串访问–证书助理–从证书办法机构请求证书– 在“用户电子邮件地址”和“CA 电子邮箱地址中”填写你的appId的邮箱账号(苹果开发者平台账号);“常用名称”随便填,下边选择"存储到磁盘",这里选择存储到桌面 2.创建推送证书
登录苹果开发者中心 https://developer.apple.com/account/ 选择Certificates, Identifiers & Profiles –Identifiers– –点击要生成证书的app– –下拉Push Notifications– –点击edit– –选择刚才生成的CertificateSigningRequest.certSigningRequest– –点击continue– 在生成的页面中Download– 得到aps.cer
3.双击下载的aps.cer添加到“钥匙串访问”,
提示"Apple Push Services:XXX.XXX.XXX"证书不受信任 原因:之前的Worldwide Developer Relations过期了 –前往https://www.apple.com/certificateauthority/ –下载Worldwide Developer Relations - G4 (Expiring 12/10/2030 00:00:00 UTC) –双击添加到“钥匙串访问” –证书就正常了– 右键导出–发现.p12是灰的, 原因:这个是系统钥匙串 需要点击左上角“登录”–“我的证书”里边导出 命名导出的文件– 设置文件密码–输入电脑的登录密码–得到push.p12文件
4.将cer文件转换为pem格式的文件 打开终端----->cd打开到cer文件文件夹,执行下面的命令 命令: openssl x509 -inform der -in 文件名称.cer -out PushChatCert.pem (PushChatCert.pem:生成的pem文件) 5.将p12文件转换为pem格式的文件 push.p12:p12的文件名 命令:openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12 (PushChatKey.pem:生成pem的文件名) 6.将4、5步得到的两个pem文件合并为一个pem文件 命令:cat PushChatCert.pem PushChatKey.pem > ck.pem 7.将第6步得到的pem文件转换为p12文件 命令:openssl pkcs12 -export -in ck.pem -out pushcer.p12 (pushcer.p12:最后交给服务器的p12文件)
|