网站是用来远程办公的
所以 希望只允许内部人访问
虽然有了密码,但还是希望让系统更加牢固
目前用的 startSSL 的免费证书一年
可以防止简单拦截抓包
现在想实现双向认证
但是我在实际测试中,发现
当我自己生成证书做双向认证的时候,浏览器的锁就不是绿色了,因为我自己生成的 ca ,不被本地信任,
没有启用双向认证的时候,用的 startSSL 的证书,浏览器的锁是绿色的
有没有办法,让浏览器的锁是绿色的,并且支持双向认证,并且不用把自己生产的 CA 加入本地信任呢
我的环境是 linux nginx
求指点
1
wdlth 2015-11-19 16:09:18 +08:00 1
在保证安全的前提下,可以把域名证书导入系统,因为域名证书也可以作为客户端身份验证。
设置好验证深度的话,用同一个 CA 颁发的不同域名证书也可以,我测试用 SHA-1 的证书也可以登录 SHA-256 加密的,根证书都是 GlobalSign 的。 |
2
ooxxcc 2015-11-19 16:11:36 +08:00 1
双向认证可以用两套证书的
客户端认证服务器使用 startssl 的那一套 服务器认证客户端使用自建的一套 没在 nginx 里试过, anyconnect 里面是可以这样的, stunnel 也可以 |
3
yeyeye 2015-11-19 22:04:32 +08:00 1
我想请教一下
服务器用可信 CA 签署证书 客户端用自签名签署 会出现楼主这样的情况吗?(或者楼主就是这样做的?) 今天刚在另一个主题回复了,客户端证书你可以去沃通获得免费 3 年的电子邮件证书,应该每个都可以用来做客户端部分的验证。 |
4
QQ1685425675 OP @yeyeye 谢谢 你的意思是让公司的每个员工都去申请 沃通 的电子邮件证书吗,那如此的话,我就需要把 每个员工的 证书都存在服务器的信任列表里面,不然的话 系统无法识别这个人是不是经过授权的
不过这样的话,会不会步骤就比较麻烦了,不知道 nginx 上是否有现成的方案 |
5
QQ1685425675 OP @wdlth 谢谢
|
6
QQ1685425675 OP @ooxxcc 谢谢
|
7
yeyeye 2015-11-19 22:59:08 +08:00 1
@QQ1685425675 我看了下别人的教程 应该是客户端证书的公钥提取出来吧,因为比较懒,所以没做过实验。关于用邮件证书去做验证也是很久之前听别人说的。
但是这样确实实现了无需自己去搞什么自签名,都在完全信任的体系里。 当然啦,自签名发放证书确实很方便 |
8
wdlth 2015-11-19 23:50:29 +08:00 1
@QQ1685425675 WoSign 的证书做了 StartCom 的交叉验证,我认为 WoSign 的 Email 证书应该可以用于 StartCom 的客户端验证。
你可以试试,在你的 https 站点的配置文件中 server 段加上: ssl_client_certificate /etc/ssl/ca-certs.pem;( StartCom 证书+WoSign 中间证书) ssl_verify_depth 3;(不行改 4 试试) ssl_verify_client optional; |
9
HowardMei 2015-11-20 00:00:09 +08:00 1
为啥不直接 VPN?
|
10
xenme 2015-11-20 00:10:23 +08:00 via iPhone 1
全部自签,反正自己用,没证书直接拒绝了。再发个人证书
|
11
datocp 2015-11-20 00:14:55 +08:00 via Android 1
倒是经常用 stunnel ,按实例的话它都能把 google tcp 53 加密到本地,不知道 tcp 80 是否可行。然后它的 verify 3 就是用来对客户端证书进行认证用的,只是看起来还是不如浏览器方便。
|
12
QQ1685425675 OP @wdlth 那如此的话,是不是所有人,申请的 wosign 的 email 证书都可以登陆我公司的站点呀,应该有个地方可以设置一个判断,你让符合规则的 email 进入, 或者说 0-0
用我们公司的域名邮箱,分配给员工,然后用域名邮箱来给员工申请证书,那如此的话,在 ngxin 里面,如何判断这个证书 email 里面的网址后缀呢,只有网址后缀是我们公司的网址,那么就让他通过,否则不通过 |
13
QQ1685425675 OP @HowardMei 感觉小公司用 vpn 不太好,成本比双向认证要高
|
14
QQ1685425675 OP @xenme 也想过全部自签,但是总感觉可能会留下安全隐患,怕把 ca 密钥弄丢什么的
|
15
wdlth 2015-11-20 12:28:17 +08:00 1
|
16
wdlth 2015-11-20 12:31:12 +08:00 1
这些数值是 Nginx 的,不是 PHP 的。可以用 fastcgi_param 传到 PHP ,在那里判断,也可以在 Nginx 里面判断,看你怎么实现。
|
17
xenme 2015-11-20 15:48:50 +08:00 1
@QQ1685425675 CA 签完证书就离线好了。或者你们就用 two-factor 也行。全部采用商业方案。
|