请问我在 startSSL 申请的免费证书,能用来制作双向认证的证书吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
9xrtp7r1
V2EX    问与答

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

  •  
  •   9xrtp7r1 2015-03-24 10:38:17 +08:00 5336 次点击
    这是一个创建于 3867 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    谢谢大家

    29 条回复    2015-03-26 03:55:23 +08:00
    xenme
        1
    xenme  
       2015-03-24 11:03:55 +08:00
    免费的不行,你需要的是中级证书。
    http://www.startssl.com/?app=5
    sarices
        2
    sarices  
       2015-03-24 11:48:14 +08:00
    搭个话,问问
    自签证书可不可以做双向?
    双向证书是不是有证书的客户端才能访问?
    客户的证书是不是所有客户都用同一个?
    谢谢
    wzxjohn
        3
    wzxjohn  
       2015-03-24 12:01:46 +08:00
    @sarices 自签可以双向,只是系统默认不信任而已。
    publicID001
        4
    publicID001  
       2015-03-24 12:33:25 +08:00 via Android
    可以 让你的所有客户申请一个Startcom的email证书,客户用你网站的证书验证你的身份,你用客户的email证书验证客户身份
    julyclyde
        5
    julyclyde  
       2015-03-24 13:37:04 +08:00
    可以双向。要求客户端出示 指定CA签发的 证书
    NewYear
        6
    NewYear  
       2015-03-24 16:54:37 +08:00
    我以前也想过这个问题,双向认证真的算是一个很赞的方案。

    关注。
    9xrtp7r1
        7
    9xrtp7r1  
    OP
       2015-03-24 17:05:33 +08:00
    @xenme 谢谢您,我看页面好像写2美元一个, 我目前用的免费证书,如果用这个中级的证书需要多少钱,一个客户端给2美元就可以了吗。这个证书本身需要多少钱呢 [我英语不太好] 找了半天 也没有找到入口
    9xrtp7r1
        8
    9xrtp7r1  
    OP
       2015-03-24 17:07:07 +08:00
    @sarices 自己搭建 浏览器会提示 危险,但你可以把自建的加入浏览器的信任里面 就不提醒了 ,但是如果你的ca根证书被盗,那可能就会带来很可怕的风险
    9xrtp7r1
        9
    9xrtp7r1  
    OP
       2015-03-24 17:07:44 +08:00
    @publicID001 哦哦 那需要钱吗 有教程吗, 用什么关键词去搜索这方面的教程呢 谢谢您
    9xrtp7r1
        10
    9xrtp7r1  
    OP
       2015-03-24 17:07:51 +08:00
    @julyclyde 谢谢
    47jm9ozp
        11
    47jm9ozp  
       2015-03-24 17:21:44 +08:00
    可以双向认证

    startssl的证书用来客户认证服务器,服务器认证客户可以用另一套ca/证书组合
    9xrtp7r1
        12
    9xrtp7r1  
    OP
       2015-03-24 17:24:16 +08:00
    @ooxxcc 谢谢 请问如何设置呢,有对应教程吗 或者我应该用什么关键词去搜对应的教程呢 谢谢您
    vibbow
        13
    vibbow  
       2015-03-24 17:31:14 +08:00
    47jm9ozp
        14
    47jm9ozp  
       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

    搜一下有很多教程
    imnpc
        15
    imnpc  
       2015-03-24 17:38:39 +08:00
    好像需要将证书转换为pfx?然后双向认证
    publicID001
        16
    publicID001  
       2015-03-24 17:54:24 +08:00 via Android
    @9xrtp7r1 不要,就和你登录startssl的证书一样,也给客户申请这种证书就行。

    关键词类似apache/php证书认证 等 13楼也提到了。

    另外楼上说的中级根不是大企业基本不用想了,不是一般的贵和麻烦,而且这是为了自己签发用的,你这个让客户直接找startssl就好。
    9xrtp7r1
        17
    9xrtp7r1  
    OP
       2015-03-24 17:54:26 +08:00
    @vibbow


    谢谢 我用的 nginx ,目前网站是ssl访问的,用的是startssl的免费证书,但我不知道如何弄成双向认证,以前我用自己签发ca 签发客户端 ,服务器证书的方式实现过双向认证;但它显示不信任,所以我想用 系统信任的证书机构的证书来实现 双向认证
    9xrtp7r1
        18
    9xrtp7r1  
    OP
       2015-03-24 17:55:11 +08:00
    @ooxxcc 谢谢 我用的 nginx ,目前网站是ssl访问的,用的是startssl的免费证书,但我不知道如何弄成双向认证,以前我用自己签发ca 签发客户端 ,服务器证书的方式实现过双向认证;但它显示不信任,所以我想用 系统信任的证书机构的证书来实现 双向认证
    9xrtp7r1
        19
    9xrtp7r1  
    OP
       2015-03-24 17:59:09 +08:00
    @publicID001 谢谢您的再次回复, 目前用我们网站的客户数量就6个左右,不多,并且以后也不会很多的,因为是内部用, 您的意思是 我去startssl给每个客户申请一个证书吗, 如果我给每个客户申请了证书,如果再服务器上 验证他们的身份呢,我用的 nginx , 我想应该要让nginx获取客户提交的证书的某些信息,如果符合就放行,否则就拦截, 我不太了解如何在nginx上设置鉴权,您是否有办法呢
    yangff
        20
    yangff  
       2015-03-24 18:13:15 +08:00 via Android
    。。你自签一个root ca,然后把双向验证的证书弄好,把root ca的key删掉,把造root ca的服务器砸了烧掉,问题解决。
    47jm9ozp
        21
    47jm9ozp  
       2015-03-24 18:21:17 +08:00
    @9xrtp7r1 按我14楼给的配置就好,或者参照你原本的配置,只要把 ssl_certificate 改成startssl签发的证书就好,ssl_certificate_key改为配套的私钥,其他不用动
    9xrtp7r1
        22
    9xrtp7r1  
    OP
       2015-03-24 18:38:14 +08:00
    @ooxxcc 谢谢 我试试 ,那这样 会不会 其他人 申请一个 startssl的证书 也能访问我的网站呀
    vibbow
        23
    vibbow  
       2015-03-24 18:45:41 +08:00
    @9xrtp7r1 所以需要你在应用层,或者apache/nginx那里检查客户端证书
    9xrtp7r1
        24
    9xrtp7r1  
    OP
       2015-03-24 18:49:57 +08:00
    @vibbow 哦哦 我就是想让nginx帮我检查证书,如果正确,就让通过, 否则就什么都不返回,



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

    但我不知道 如何在nginx里面做这个判断逻辑, 也不知道如何获取客户证书的信息
    vibbow
        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颁发给我这个邮箱的。
    47jm9ozp
        26
    47jm9ozp  
       2015-03-24 19:02:45 +08:00
    @9xrtp7r1 你还是没弄懂,服务端认证客户端用的是你自己签发的CA。。。。就不是startssl那套了
    9xrtp7r1
        27
    9xrtp7r1  
    OP
       2015-03-24 19:29:30 +08:00
    @ooxxcc 哦哦 如此的话,那我和服务器连接的时候用的是startssl的证书吗,如果自己签发的话,那浏览器上面就不会显示绿色的哦 就会说没有信任
    SharkIng
        28
    SharkIng  
       2015-03-25 07:41:55 +08:00
    @9xrtp7r1 oxxcc说的是,你浏览器验证,就是客户在访问你网站的时候,你是使用的是StartSSL的证书,然后需要认证 的时候,你使用的是你自己的CA证书,这两个是互不影响的
    9xrtp7r1
        29
    9xrtp7r1  
    OP
       2015-03-26 03:55:23 +08:00
    @SharkIng 非常感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     997 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 18:52 PVG 02:52 LAX 11:52 JFK 14:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86