技术解析

遇到一个奇怪的问题——给二级域名 a.xxx.com 配好了 https,架设在 nginx 里,在电脑上正常访问,但在 iPhone 上却提示无法验证证书。可是,
0
2021-05-26 16:02:43
idczone
可是我另外一个二级域名 b.xxx.com 使用的同样的证书,架设在 IIS 上,却在电脑和 iPhone 上均能能正常访问。
实在不知道如何解决了。
附上nginx配置文件

===========

server {
listen 443 ssl;
server_name a.xxx.com;
ssl on;

ssl_certificate conf.d/1.crt;
ssl_certificate_key conf.d/1.key;

location / {
proxy_pass http://127.0.0.1:5001 ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off抗投诉服务器;
}



}
应该是证书链不完整

十有八九


的确是证书链的问题,把链证书加上就好了。
不过,我在IIS里配置证书的时候,是没有添加证书链的,但在各个平台却能正常使用,难道IIS会自动补全证书链?

IIS中应该信任了证书的中间签发商,毕竟微软有Windows,其附属的信任列表也应该添加到其产品中了。至于Nginx,单纯的轻量,完全依赖配置,因此需要完整的证书链。个人猜想,仅供参考~

现在 Chrome 会自动补全证书链
补全证书链是浏览器进行的
NGINX环境

是浏览器支持的关系。电脑浏览器都自带证书链,手机端一般没有,所以服务端如果证书链不完整在电脑上访问是没问题的,但是在手机上就会出错。

但我在IIS里,没有使用证书链,发布的站点,在iPhone里面显示正常。

Windows自己会自动补全证书链的。

我之前用Wosign的证书,开始显示上级证书是StartCom的。
过一会再打开看上级证书就是WoSign自己的了。

如8楼所说,可能是windows自动补全了,我没用过IIS,不了解。至少我用Nginx的时候是必须自己提供完整证书链的

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服