http://www.v2ex.com/t/246219
这是我上一个求助帖
最终打算,用 沃通 的 email 证书来作为双向认证的客户端证书
公司的域名是 www.baidu.com [假设]
那么,我给每个员工申请一个 [email protected] 的域名邮箱,然后用这个域名邮箱去申请沃通的 email 证书
老王的证书是 [email protected]
老张的证书是 [email protected]
老刘的证书是 [email protected]
然后 在 nginx 里面,获取当前访客的证书信息,如果访客证书使用的邮箱后缀是 baidu.com ,那么就通过,否则不通过
我希望 nginx 本身完成这个基本的判断,不希望没有经过授权的人访问 web 的任何信息,所以希望不合格的用户直接被 nginx 挡在门外
目前我网上搜了下资料,好像 nginx 本身无法做这个判断,但是我感觉 nginx 应该是可以的,但是我不知道如何来实现
所以来此求助各位大神,谢谢
每个回答有意义的朋友我都会帮忙点个 感谢
谢谢大家
1
yeyeye 2015-12-27 00:53:59 +08:00 1
楼猪可能误会了,并不是客户端有一个 email 证书就能登录任意开启了双向认证的网站,这个是互相对应的、、
一定要你的服务器,把这个客户端证书加入到服务器的设置里,它才能访问你的网站,否则是连接不上的。也就是无需做什么后缀判断,明白吗 |
2
hqlf6rqieee3 OP @yeyeye 谢谢 比如 我用 [email protected] 的这个邮箱 在 沃通 注册了一个 邮箱证书,那么 ,我应该在服务器上如何做设置呢,我用的是 nginx 谢谢
|
3
oott123 2015-12-27 00:58:15 +08:00 1
一楼说得好像没错
不过楼主的需求也有道理,可以搜索一下 nginx ssl common name |
4
oott123 2015-12-27 00:59:27 +08:00
不对 一楼好像说得有问题 并没有什么相互对应关系的 _(:з」∠)_ 我眼花了
|
5
ryd994 2015-12-27 01:22:47 +08:00 via Android 1
我说一个已知有效的简单办法,可能要被楼下喷
自建 CA 给员工签证书,设置 ssl_trusted_certificate 为这个 CA 就行 内部使用而不需要公众信任的话没有问题。前提是 PKI CA 整个一套流程要做齐,特别是 revoke 相关的,私钥千万冷储存 另外,你这个需求其实限制内网访问更方便。员工出差的话就用 VPN ,这才是 VPN 本来的用途。 |
6
ryd994 2015-12-27 01:25:50 +08:00 via Android 1
原帖 @rex1901 不是连配置都给出来了么。
用 wosign 的话把 wosign 的根证书作为 ssl_trusted_certificate |
7
ooxxcc 2015-12-27 01:32:15 +08:00 1
基本就是楼上说的
客户端鉴定服务端用沃通的证书,服务端鉴定客户端用自己生成的 CA 签发的证书 其实可以参考自建 anyconnect 证书登陆什么的 |
8
nbndco 2015-12-27 09:26:24 +08:00 1
你自己生成 CA 自己签证书,客户端验证的证书不需要什么信任不信任的。
服务器的证书和客户端的证书不需要是同一个 CA 。 |
9
wdlth 2015-12-27 11:48:09 +08:00 1
证书认证成功后, Nginx 的 $ssl_client_verify 会变成 "SUCCESS",$ssl_client_s_dn 会变成客户端证书的主题(Subject),$ssl_client_serial 会变成证书的序列号,剩下的你要怎么判断看你了,在 Nginx 或者传到后端处理也行。
比如可以通过序列号在数据库中匹配用户,这样就算是相同 CA 的证书也弄混不了,同时可以方便的辨别用户。 |