HTTPS 客户端证书 Web 服务器配置

2015-12-05 09:05:28 +08:00
 schemacs

Android 手机访问 https://login.alibaba-inc.com/ 这个页面,会弹出如下请求是否安装证书的对话框,请问这个 Web 服务端怎么设置?参考 1参考 2

http://i.imgur.com/cRhfDMZ.png

http://i.imgur.com/VcIIr8d.png

4055 次点击
所在节点   科技
14 条回复
just1
2015-12-05 09:07:30 +08:00
可以啊
schemacs
2015-12-05 09:09:58 +08:00
@just1 请教下如何配置 Web 服务器哈?
just1
2015-12-05 09:15:34 +08:00
@schemacs uv,firefox 都可以正常访问, chrome 提示安装证书。 你要配置 Apache 还是 nginx ?
schemacs
2015-12-05 09:17:39 +08:00
@just1 nginx 最好, apache 也行,多谢指教哈。
just1
2015-12-05 09:18:20 +08:00
@schemacs 你的意思是要出现这个错误提示吗。。
schemacs
2015-12-05 09:23:15 +08:00
@just1 不是哈。我想问怎么配置 Nginx ,让 Android 弹出安装的界面,即第二张图。
lhbc
2015-12-05 09:29:55 +08:00
F12 看下网络请求和代码不就知道了,反正都是 http ,浏览器看得一清二楚。
schemacs
2015-12-05 09:34:38 +08:00
@lhbc 嗯,好办法。我 curl 没看出什么异常,难道 android 上的 chrome 做了特殊处理。
nbndco
2015-12-05 09:39:10 +08:00
一般配置文件里加上
SSLCACertificatePath
SSLCACertificateFile
再设置
SSLVerifyClient require
验证客户端是不是有由指定 CA 签发的证书。

具体设置要看你用 nginx 还是 apache 。
应该不算是 HTTP 的一部分。
schemacs
2015-12-05 09:45:39 +08:00
yeyeye
2015-12-05 12:37:25 +08:00
是双向认证吧?请在搜索引擎搜索
nginx 双向认证
apache 双向认证
schemacs
2015-12-05 15:09:33 +08:00
@yeyeye 嗯,已经找到了,谢谢。

可以正常工作的配置如下

```
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem;

ssl_verify_client on;
ssl_verify_depth 2;
ssl_client_certificate /etc/letsencrypt/live/your-ca.pem;
```
schemacs
2015-12-05 15:24:02 +08:00
不过新问题是, Android 上的 Chrome 会提示安装客户端证书,但是 Mac 的 Chrome 上什么提示也没有啊,是不是实现不同?后者会查看这个 ca 是否在本机的信任 ca 列表里?

直接 curl 显示:

```
<html>
<head><title>400 No required SSL certificate was sent</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>No required SSL certificate was sent</center>
<hr><center>nginx</center>
</body>
</html>
```
mudkip
2015-12-05 15:25:24 +08:00
ssl_verify_client / ssl_verify_depth / ssl_client_certificate 这些东西是验证客户端身份用的,除非你只限自己一个人访问,否则不要写。

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

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

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

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

© 2021 V2EX