请问我在 startSSL 申请的免费证书,能用来制作双向认证的证书吗?

2015-03-24 10:38:17 +08:00
 9xrtp7r1

我在startSSL申请了一个免费数字证书,已经部署成功,可以让网站正常访问了

因为这个网站是内部的系统,不希望外部的人访问到

所以我想用 双向认证, 但是我不会弄

网上的教程都是教 要自己做ca,可是 这样的话 浏览器就不认识了,需要把自己的ca加入信任,但我怕ca被盗,会给我们的用户带来麻烦

所以请问大家,这个start申请来的ssl证书可以制作双向认证吗?

或者 你有其他更好的办法来实现,限制外部人员的访问吗

网站的入口就是一个登陆页面。所以才不希望任何没有授权的人访问

谢谢大家

4818 次点击
所在节点    问与答
29 条回复
ooxxcc
2015-03-24 18:21:17 +08:00
@9xrtp7r1 按我14楼给的配置就好,或者参照你原本的配置,只要把 ssl_certificate 改成startssl签发的证书就好,ssl_certificate_key改为配套的私钥,其他不用动
9xrtp7r1
2015-03-24 18:38:14 +08:00
@ooxxcc 谢谢 我试试 ,那这样 会不会 其他人 申请一个 startssl的证书 也能访问我的网站呀
vibbow
2015-03-24 18:45:41 +08:00
@9xrtp7r1 所以需要你在应用层,或者apache/nginx那里检查客户端证书
9xrtp7r1
2015-03-24 18:49:57 +08:00
@vibbow 哦哦 我就是想让nginx帮我检查证书,如果正确,就让通过, 否则就什么都不返回,



我设想的, 给客户的证书,他们的邮箱都是 公司域名邮箱, @后面的后缀是 公司的域名, 如果写代码判断,只要获取客户证书里面的邮箱 判断是不是 公司的域名,就可以完成验证,.

但我不知道 如何在nginx里面做这个判断逻辑, 也不知道如何获取客户证书的信息
vibbow
2015-03-24 18:58:35 +08:00
@9xrtp7r1 如果是你给客户证书,那么八成是你自签名的证书了。
那你第一步要做的是按照我前面博客上的教程,把你自签名证书的CA添加到系统证书库里。

然后我在Apache里是这样认证的,不确定Nginx里怎么写:

<VirtualHost *:443>
..............

SSLEngine on
Header add Strict-Transport-Security: "max-age=15768000"

SSLVerifyClient require
SSLVerifyDepth 10
SSLOptions +StdEnvVars

<Location />
SSLRequire %{SSL_CLIENT_I_DN_O} eq "WoSign CA Limited" \
and %{SSL_CLIENT_S_DN_Email} eq "vibbow@hotmail.com"
</Location>
</VirtualHost>

这样Apache就会进行双向认证,同时检查客户端SSL证书必须是WoSign颁发给我这个邮箱的。
ooxxcc
2015-03-24 19:02:45 +08:00
@9xrtp7r1 你还是没弄懂,服务端认证客户端用的是你自己签发的CA。。。。就不是startssl那套了
9xrtp7r1
2015-03-24 19:29:30 +08:00
@ooxxcc 哦哦 如此的话,那我和服务器连接的时候用的是startssl的证书吗,如果自己签发的话,那浏览器上面就不会显示绿色的哦 就会说没有信任
SharkIng
2015-03-25 07:41:55 +08:00
@9xrtp7r1 oxxcc说的是,你浏览器验证,就是客户在访问你网站的时候,你是使用的是StartSSL的证书,然后需要认证 的时候,你使用的是你自己的CA证书,这两个是互不影响的
9xrtp7r1
2015-03-26 03:55:23 +08:00
@SharkIng 非常感谢

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

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

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

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

© 2021 V2EX