遇到一个奇怪的问题——给二级域名 a.xxx.com 配好了 https,架设在 nginx 里,在电脑上正常访问,但在 iPhone 上却提示无法验证证书。可是,

2014-12-17 23:29:28 +08:00
 skylooker
可是我另外一个二级域名 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;
}



}
2713 次点击
所在节点    NGINX
10 条回复
MinonHeart
2014-12-17 23:48:53 +08:00
应该是证书链不完整
zjgood
2014-12-18 00:11:04 +08:00
@MinonHeart 十有八九
skylooker
2014-12-18 00:28:20 +08:00
@MinonHeart @zjgood
的确是证书链的问题,把链证书加上就好了。

不过,我在IIS里配置证书的时候,是没有添加证书链的,但在各个平台却能正常使用,难道IIS会自动补全证书链?
MinonHeart
2014-12-18 00:38:05 +08:00
@skylooker IIS中应该信任了证书的中间签发商,毕竟微软有Windows,其附属的信任列表也应该添加到其产品中了。至于Nginx,单纯的轻量,完全依赖配置,因此需要完整的证书链。个人猜想,仅供参考~
io565
2014-12-18 07:19:31 +08:00
现在 Chrome 会自动补全证书链
补全证书链是浏览器进行的
NGINX环境
raptor
2014-12-18 10:50:56 +08:00
是浏览器支持的关系。电脑浏览器都自带证书链,手机端一般没有,所以服务端如果证书链不完整在电脑上访问是没问题的,但是在手机上就会出错。
skylooker
2014-12-18 11:10:27 +08:00
@raptor 但我在IIS里,没有使用证书链,发布的站点,在iPhone里面显示正常。
vibbow
2014-12-19 06:10:58 +08:00
@skylooker Windows自己会自动补全证书链的。
vibbow
2014-12-19 06:13:52 +08:00
@skylooker 我之前用Wosign的证书,开始显示上级证书是StartCom的。
过一会再打开看上级证书就是WoSign自己的了。
raptor
2014-12-19 08:47:21 +08:00
@skylooker 如8楼所说,可能是windows自动补全了,我没用过IIS,不了解。至少我用Nginx的时候是必须自己提供完整证书链的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/154732

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX