由于如今的运算能力越来越强,SHA1 散列算法的可靠性越来越不够了。一些主流的浏览器,如果发现2016元旦之后签署的 CA 证书,依然采用 SHA1,会给出警告。沃通为了帮证书申请人规避浏览器警告,故意把签署日期伪造成2015年底。
2.2.3. 顶级证书私钥泄露怎么办如果顶级证书的私钥泄露,那么带来的后果是灾难性的,只能各大浏览器和操作系统通过更新补丁的方式来吊销泄密的根证书,泄露之后一般这家CA公司离倒闭不远了,也不是没有这样的例子:
荷兰CA供应商DigiNotar因为黑客入侵事件而成为万众瞩目的焦点,它发行的证书被众多浏览器开发商和操作系统开发商宣布为不受信任。现在,这家失去信任的CA宣告破产。疑似伊朗黑客在7月中旬入侵了DigiNotar服务器,发行了531个伪造证书,包括了Google、微软、雅虎、Twitter、Facebook、中情局、军情六处和摩萨德等。DigiNotar在7月19日发现了入侵,但直到8月份外界才知道入侵事件。DigiNotar的母公司VASCO承认损失惨重。
2.3. SSL证书 2.3.1. 证书的种类SSL 证书按大类一般可分为DV SSL 、OV SSL、EV SSL证书,又叫域名型、企业型、增强型证书:
DV SSL(Domain Validation),域名型SSL证书,证书颁布机构只对域名的所有者进行在线检查,只要你能证明你是这个域名的所有者就可以给你颁发证书,不会校验网站的资质,哪怕你是个黄赌毒网站也可以,个人网站、非盈利项目、开源项目等用域名型证书足矣;
OV SSL(Organization Validation),企业型SSL证书,需要购买者提交组织机构资料和单位授权信等在官方注册的凭证,证书颁发机构在签发 SSL 证书前不仅仅要检验域名所有权,还必须对这些资料的真实合法性进行多方查验,只有通过验证的才能颁发 SSL 证书;
EV SSL(Extended Validation),增强型SSL证书(EV SSL),验证流程更加具体详细,验证步骤更多,这样一来证书所绑定的网站就更加的可靠、可信。它跟普通SSL证书的区别是浏览器的地址栏变绿,如果是不受信的 SSL 证书则拒绝显示,如果是钓鱼网站,地址栏则会变成红色,以警示用户。
不论是 DV、OV 还是 EV 证书,其加密效果都是一样的,个人网站用DV证书、企业用OV足够了。
如何查看证书类型?如下图,百度是OV,github是EV(其实好像并没有统一的区分方法,有的证书不会写):
2.3.2. 证书的格式一般来说,主流的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。
Tomcat、Weblogic、JBoss等Web服务软件,一般使用JDK自带的Keytool工具,生成Java Keystore(JKS)格式的证书文件。
Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成 .key、.crt等格式的证书文件。
IBM 的 Web 服务产品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 产品自带的 iKeyman 工具,生成 KDB 格式的证书文件。
微软的IIS使用Windows自带的证书库生成pfx格式的证书文件。
详见下图:
每种格式之间都可以相互转换,转换方法可以参考阿里云给出的帮助文档,在腾讯云申请证书的时候会自动帮你生成4种服务器各自需要的格式,非常方便。
2.3.3. 证书的收费与免费不是说收费的证书就一定比免费证书好,只不过现阶段各CA机构为了自己的盈利目的,免费证书一般都有一些限制,比如只支持单域名,子域名太多的话需要挨个申请。
实践篇本文全部以nginx配置为例,其它Web服务器配置请自行google,或者参考这篇不错的文章:SSL证书安装指引。
3.1. 第一步,生成证书首先我们需要得到一张证书,可以申请免费的,也可以自制,本地测试时一般自制证书。
3.1.1. 申请免费证书免费证书一般有下面几种:
我们一般不需要自己直接和它们打交道,国内的云服务提供商一般都有免费的证书申请,这里操作会更简单一点。