我在startSSL申请了一个免费数字证书,已经部署成功,可以让网站正常访问了
因为这个网站是内部的系统,不希望外部的人访问到
所以我想用 双向认证, 但是我不会弄
网上的教程都是教 要自己做ca,可是 这样的话 浏览器就不认识了,需要把自己的ca加入信任,但我怕ca被盗,会给我们的用户带来麻烦
所以请问大家,这个start申请来的ssl证书可以制作双向认证吗?
或者 你有其他更好的办法来实现,限制外部人员的访问吗
网站的入口就是一个登陆页面。所以才不希望任何没有授权的人访问
谢谢大家
1
xenme 2015-03-24 11:03:55 +08:00
免费的不行,你需要的是中级证书。
http://www.startssl.com/?app=5 |
2
sarices 2015-03-24 11:48:14 +08:00
搭个话,问问
自签证书可不可以做双向? 双向证书是不是有证书的客户端才能访问? 客户的证书是不是所有客户都用同一个? 谢谢 |
4
publicID001 2015-03-24 12:33:25 +08:00 via Android
可以 让你的所有客户申请一个Startcom的email证书,客户用你网站的证书验证你的身份,你用客户的email证书验证客户身份
|
5
julyclyde 2015-03-24 13:37:04 +08:00
可以双向。要求客户端出示 指定CA签发的 证书
|
6
NewYear 2015-03-24 16:54:37 +08:00
我以前也想过这个问题,双向认证真的算是一个很赞的方案。
关注。 |
7
9xrtp7r1 OP @xenme 谢谢您,我看页面好像写2美元一个, 我目前用的免费证书,如果用这个中级的证书需要多少钱,一个客户端给2美元就可以了吗。这个证书本身需要多少钱呢 [我英语不太好] 找了半天 也没有找到入口
|
8
9xrtp7r1 OP @sarices 自己搭建 浏览器会提示 危险,但你可以把自建的加入浏览器的信任里面 就不提醒了 ,但是如果你的ca根证书被盗,那可能就会带来很可怕的风险
|
9
9xrtp7r1 OP @publicID001 哦哦 那需要钱吗 有教程吗, 用什么关键词去搜索这方面的教程呢 谢谢您
|
11
ooxxcc 2015-03-24 17:21:44 +08:00
可以双向认证
startssl的证书用来客户认证服务器,服务器认证客户可以用另一套ca/证书组合 |
13
vibbow 2015-03-24 17:31:14 +08:00
|
14
ooxxcc 2015-03-24 17:32:44 +08:00
@9xrtp7r1 你用的什么服务端?
nginx的话,大概这样的 ssl_certificate <startssl cert> ssl_certificate_key <private key> ssl_client_certificate <self-signed ca cert> ssl_verify_client on 搜一下有很多教程 |
15
imnpc 2015-03-24 17:38:39 +08:00
好像需要将证书转换为pfx?然后双向认证
|
16
publicID001 2015-03-24 17:54:24 +08:00 via Android
@9xrtp7r1 不要,就和你登录startssl的证书一样,也给客户申请这种证书就行。
关键词类似apache/php证书认证 等 13楼也提到了。 另外楼上说的中级根不是大企业基本不用想了,不是一般的贵和麻烦,而且这是为了自己签发用的,你这个让客户直接找startssl就好。 |
17
9xrtp7r1 OP @vibbow
谢谢 我用的 nginx ,目前网站是ssl访问的,用的是startssl的免费证书,但我不知道如何弄成双向认证,以前我用自己签发ca 签发客户端 ,服务器证书的方式实现过双向认证;但它显示不信任,所以我想用 系统信任的证书机构的证书来实现 双向认证 |
18
9xrtp7r1 OP @ooxxcc 谢谢 我用的 nginx ,目前网站是ssl访问的,用的是startssl的免费证书,但我不知道如何弄成双向认证,以前我用自己签发ca 签发客户端 ,服务器证书的方式实现过双向认证;但它显示不信任,所以我想用 系统信任的证书机构的证书来实现 双向认证
|
19
9xrtp7r1 OP @publicID001 谢谢您的再次回复, 目前用我们网站的客户数量就6个左右,不多,并且以后也不会很多的,因为是内部用, 您的意思是 我去startssl给每个客户申请一个证书吗, 如果我给每个客户申请了证书,如果再服务器上 验证他们的身份呢,我用的 nginx , 我想应该要让nginx获取客户提交的证书的某些信息,如果符合就放行,否则就拦截, 我不太了解如何在nginx上设置鉴权,您是否有办法呢
|
20
yangff 2015-03-24 18:13:15 +08:00 via Android
。。你自签一个root ca,然后把双向验证的证书弄好,把root ca的key删掉,把造root ca的服务器砸了烧掉,问题解决。
|
21
ooxxcc 2015-03-24 18:21:17 +08:00
@9xrtp7r1 按我14楼给的配置就好,或者参照你原本的配置,只要把 ssl_certificate 改成startssl签发的证书就好,ssl_certificate_key改为配套的私钥,其他不用动
|
24
9xrtp7r1 OP @vibbow 哦哦 我就是想让nginx帮我检查证书,如果正确,就让通过, 否则就什么都不返回,
我设想的, 给客户的证书,他们的邮箱都是 公司域名邮箱, @后面的后缀是 公司的域名, 如果写代码判断,只要获取客户证书里面的邮箱 判断是不是 公司的域名,就可以完成验证,. 但我不知道 如何在nginx里面做这个判断逻辑, 也不知道如何获取客户证书的信息 |
25
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 "[email protected]" </Location> </VirtualHost> 这样Apache就会进行双向认证,同时检查客户端SSL证书必须是WoSign颁发给我这个邮箱的。 |
27
9xrtp7r1 OP @ooxxcc 哦哦 如此的话,那我和服务器连接的时候用的是startssl的证书吗,如果自己签发的话,那浏览器上面就不会显示绿色的哦 就会说没有信任
|