如何校验服务器PUSH证书是否有效?

判断 cer 格式的PUSH证书是否有效非常简单,使用 PushMeBaby\SmartPush 之类的 Mac 应用程序向设备推一条推送通知就可以了。

但是服务器使用的PUSH 证书往往是 .pem(PHP/GoLang服务端)或 .p12(Java/C#服务端)格式的,我们可以用以下 OpenSSL 命令判断服务器 PUSH 证书是否有效,然后再确定是否是服务端代码的问题:

  1. 将 PKCS#12 (.pfx .p12) 转成 PEM:

    用以下命令转换成同时包含私钥和证书的 pem 文件:

    openssl pkcs12 -in apns_production_privatekey.p12 -out apns_production_privatekey.pem -nodes
    

    期间会提示输入密码,请输入 p12 文件导出时的密码。

    注意:如果只导出私钥可以加上 -nocerts 参数,只导出证书则可以加上 -nokeys 参数。

  2. 测试生产证书:
    openssl s_client -connect gateway.push.apple.com:2195 -cert apns_production_privatekey.pem
    

    如果输出如下信息(),表明证书是正常的:

CONNECTED(00000003) depth=1 /C=US/O=Entrust,

Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009

Entrust, Inc./CN=Entrust Certification Authority - L1C verify

error:num=20:unable to get local issuer certificate verify return:0

— Certificate chain 0 s:/C=US/ST=California/L=Cupertino/O=Apple Inc./CN=gateway.push.apple.com i:/C=US/O=Entrust,

Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009

Entrust, Inc./CN=Entrust Certification Authority - L1C 1

s:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by

reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority

- L1C i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net

Certification Authority (2048)

— Server certificate

—–BEGIN CERTIFICATE—– MIIFIzCCBAugAwIBAgIETCMvvjANBgkqhkiG9w0BAQUFADCBsTELMAkGA1UEBhMC …

… de7tGJEmdBgmtX2Wn0r0Erg+9nnjOEQ=

—–END CERTIFICATE—– subject=/C=US/ST=California/L=Cupertino/O=Apple

Inc./CN=gateway.push.apple.com issuer=/C=US/O=Entrust,

Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009

Entrust, Inc./CN=Entrust Certification Authority - L1C

— Acceptable client certificate CA names /C=US/O=Apple Inc./OU=Apple Certification Authority/CN=Apple Root CA /C=US/O=Apple Inc./OU=Apple

Worldwide Developer Relations/CN=Apple Worldwide Developer Relations

Certification Authority /C=US/O=Apple Inc./OU=Apple Certification

Authority/CN=Apple Application Integration Certification Authority

— SSL handshake has read 3144 bytes and written 2168 bytes

— New, TLSv1/SSLv3, Cipher is AES256-SHA Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion:

NONE SSL-Session:

Protocol : TLSv1

Cipher : AES256-SHA

Session-ID:

Session-ID-ctx:

Master-Key: 9E737F1BD1AC1D41A2D6486B9F2DD08EF3B87EC9A91EBB42396D9664B34FF534DA2DCF4A897688ECBEFE00B069C481BC

Key-Arg : None

Start Time: 1452222166

Timeout : 300 (sec)

Verify return code: 0 (ok)

时间: 2024-11-08 14:11:25

如何校验服务器PUSH证书是否有效?的相关文章

IOS Push 证书的重新生成

IOS的推送证书,有有效期限制,一般为一年.当我们证书过期的时候,就需要重新生成证书了.有一段时间没有上苹果网站了,昨天上去一看,此奥,改版了,下边我们将重新生成一个正式环境的push推送的证书. 1.先打开钥匙串(应用程序-实用工具-钥匙串访问),请求一个证书 常用名称写为:2013.04.27_push_production_***.并保存到磁盘上. 2.进入打开苹果网站的证书标签页面,选择 Identifiers标签下边的App IDs子标签,显示下边图片.红色圈中的是我要重新生成push

AD RMS高可用(二)为rms群集服务器申请证书

rms证书是加密所需,所以这里要为rms创建自定义的证书申请,是部署rms安全的前提条件.以下是rms证书申请的过程: 1) 单击"开始"/"运行",输入MMC,打开控制台: 2) 单击"文件"/"添加/删除管理单元": 3) 在"可用的管理单元"项中,选择"证书",单击"添加",选择"计算机账户",单击"完成",在"

Jboss 服务器SSL证书安装指南

1.获取服务器证书 将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘贴到记事本等文本编辑器中,并修改文件扩展名,保存为server.cer文件 2.获取CA证书 将证书签发邮件中的从BEGIN到 END结束的两张 CA证书 内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)分别粘贴到记事

CentOS下Apache服务器生成证书的方法

https是一个安全的访问方式,数据在传输过程中是加密的.https基于ssl. 一.安装apache和ssl模块1.安装apacheyum install httpd2.安装ssl模块yum install mod_ssl重启apache:service httpd restart安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls ,此时可以立即通过https访问服务器了: https://IP/ 如果不使用默认的证书,也可以使用openssl手动创建证书. 二.

godaddy的服务器SSL证书的生成和安装

公司是做IT金融这块,对服务器的安全还是比较注重,最近有一台服务器的电子证书马上到期,需要续费生成电子证书.为规避对生产环境业务造成风险,需要先搭建测试环境进行电子证书的测试.记录如下: 环境:windows server2008 + IIS7 一.生成证书申请的CSR文件: 下面就是生成的CSR文件: 二.将生成的CSR文件复制到godaddy上面,生成新的电子证书. 三.服务器上面安装证书

使用OpenSSL自签发服务器https证书

OpenSSL官方推荐win32可执行文件版下载:http://www.slproweb.com/products/Win32OpenSSL.html ca.key CA私钥: openssl genrsa -des3 -out ca.key 2048 制作解密后的CA私钥,但一般不需要这一步: openssl rsa -in ca.key -out ca_decrypted.key ca.crt CA根证书(公钥): openssl req -new -x509 -days 7305 -key

服务器添加证书后外网无法访问

好几个月不写博客了,懈怠了! 前几天在阿里云搞了个服务器https://www.czy543.top/,真是一波三折啊,本身是搞客户端的,配置服务器环境真是一步一个坑. 购买服务器.购买域名.经过各种资料提交,经历了二十多少天终于备案成功了,随便写了个hello Word的index.html, 咱的网站也算是搭建起来了,心里这个嘚瑟呀!但却发现网址是http的不安全地址,强迫症又犯了,就算咱的网站只有一句hello Word 也要搞成https安全连接,说干就干,我用的是phpstudy8.0

苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推

最近使用Hbuilder 进行了HTML5开发,因为 HTML5 可以放在android 机器上,也可以放到 IOS机器上,所以很感兴趣,于是开发了一个小应用, 不过问题接着来了: 图1 如图所示:当IOS 打包时候,需要 提供证书  密码和provision file文件, android 打包也需要证书文件, (1)先说一下 android打包流程: android发布 对于Android平台,可以选择使用DCloud生成的公用证书或自己生成的证书,两者不影响安装包的发布,唯一的差别就是证书

浏览器如何验证服务器数字证书?

1.验证证书的真伪当浏览器拿到一个数字证书,先看发证机关,然后找到相应的发证机关的证书,获得发证机关的公钥 ,用此公钥解密被加密的MD5,这样就获得了此证书的MD5值,称它为Hash1.然后浏览器用MD5算法对 此证书重新计算一遍MD5,获得Hash2.然后比较Hash1和Hash2是否相等.如果相等就证明这张证书是 由发证机关颁发的,并且没有被篡改过.2.验证持有者的真伪核对持有证书人的身份.这就要依赖证书里面包含的公钥.此公钥是这张证书所有者的公钥(注意, 这里指的是所有者,而不是持有者!)