我有一个 SSL 证书,它可以与所有主要证书一起正确使用,桌面浏览器(IE、Chrome、FF)以及 Windows Phone 和 iOS,但在 Android 上。
我想我已经按照正确的顺序安装了证书,因为它在服务器上显示了如下证书层次结构:
(根)AddTrust 外部 CA \ (中级)Comodo RSA 认证机构 \ Comodo RSA 域验证安全服务器 CA \ myunluckydomainnameexample.com
我知道,Android 根 CA 列表中只有 AddTrust,所以中间 CA 应该存在问题。如何在 Windows 2008 R2 上进一步调查?
我找到了 openssl 工具:
$ openssl s_client -connect myunluckydomainnameexample.com:443
CONNECTED(00000003)
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=skaelede.hu
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
我将其输出与已知工作站点进行了比较,https://ssllabs.com
并给出了以下输出:
$ openssl s_client -connect ssllabs.com:443
CONNECTED(00000003)
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=www.ssllabs.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----
..我这里缺少哪个证书?
答案1
证书存储中的过多修改似乎会导致证书链处于不稳定状态,而重新启动 IIS 无法解决这个问题。在服务器上按计划重新启动后,CA 链中的所有更改均生效,此后它按预期运行。
答案2
顺序需要为 1) 服务器 CRT 2) 域/EV/WildC CRT 3) 第二个 CA
我刚刚遇到了这个问题(在 Chrome Android 上不行),下面是我使用域证书修复它的方法。
解压我收到的电子邮件中的 zip 文件
unzip www_mysite_com.zip
创建包含所有 CA 的证书包,但跳过根证书COMODORSAAddTrustCA.crt
cat www_mysite_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > www.mysite.com.bundle.crt
我正在使用 nginx,因此我的 crt 行如下所示:
ssl_certificate /etc/nginx/ssl/www.mysite.com.bundle.crt;
效果很好,我终于让 Android 上的 Chrome 运行起来了。
问候