为了保证网上传输信息的安全而在自己的 Linode VPS 上部署 SSL 加密服务。商业 CA 较贵,所以使用了自己签发的 CA。网友神爱的留言提到了 StartSSL 的免费 CA,稍做了一些调查,在此分享两个发放免费 CA 的机构:StartSSL 和 CAcert。
Let’s Encrypt¶
为了推动更加广泛的网络安全,Mozilla、思科、Akamai、IdenTrust、EFF 和密歇根大学研究人员联合宣布了 Let’s Encrypt CA 项目,计划为网站提供免费的基本 SSL 证书,以加速互联网从 HTTP 向 HTTPS 过渡。Let’s Encrypt CA 将由非赢利组织 Internet Security Research Group (ISRG) 运营。
Let’s Encrypt 设计为部署之后向网站通过程序自动化更新和部署安全证书,证书有效期为 90 天的安全证书,到期自动更新。一旦部署,后续的维护工作几乎可以忽略。这个应该是目前最具竞争力的免费 CA 证书了吧。
StartSSL¶
注意(2016.10.02):
StartSSL 早已被 WoSign(一家中国 CA)收购,且背后有 360 作为股东。已有报道 WoSign 在签发 SSL 证书方面的违规行为。故不再建议使用该公司的证书。
相关报道应该很容易搜索到,这里就不再多说了。
StartSSL 隶属于一家以色列商业公司 StartCOM,是 StartCom Linux 操作系统的生产供应商。由 StartCom 提供的大多数解决方案都基于开源技术和开放标准。StartCom 自 2005 年开始经营 StartCom 认证机构(StartCOM CA),即由 StartSSL 负责运营。2011年6月,该公司因遭受黑客攻击而暂停签发数字证书和相关服务几个星期(via)。
StartCom 免费提供供个人使用的 StartSSL™ Free 服务,基于 Class 1 级别的 X.509 SSL 安全证书,提供对 Web 服务器(SSL / TLS)以及电子邮件加密(S / MIME)的认证。它还提供了2级和3证书以及扩展验证证书,费用不菲。
在前面介绍部署 SSL 加密服务和安装 SSL CA 的文章中已经对自己签发(Self-signed)的安全证书做了不少介绍,这里不再赘述。下面直接列举 StartSSL 免费签发的 CA 与我们自己签发的 CA 的区别。
StartSSL 免费签发的安全证书(CA)的特点是:
- 属于“中级证书颁发机构”颁发的 CA。(我们自己签发的当然就是自己了,没有被认证的。)
- 不是扩展验证证书(Extended Validation Certificate)。(注:如果是 EV Certificate 的话,通过浏览器访问的时候,地址栏会显示绿色背景,通常称为“绿栏”证书。)
- 有效期 1 年,到期还可以免费再续。(自己签发的证书可以随意设置有效期限。)
- 对 Windows 友好(在 IE 和 Chrome 中使用不会提示证书错误)。
- Firefox 对安全的控制较严格,在这一点上,StartSSL 签发的免费证书与自己签发的证书没区别。要用起来方便的话可以将证书自行添加到受信任的证书颁发结构列表中。
以上记录都经过了水景一页的测试和检查。
根据维基百科上的记录,自 2009年9月开始,所有的微软 Windows 操作系统、苹果 Mac OS X10.5 版本(Leopard)以及 Mozilla Firefox 2.x 及以上版本(误?)都默认包含了 StartSSL 证书。但是我上面说了,至少免费版本的 StartSSL 证书仅仅被认证为“中级证书颁发机构”而不是“受信任的根证书颁发机构”。而且,我目前使用的 Firefox 15 中也并没有包含 StartSSL 证书。
另外,2010年7月27日开始 Opera 浏览器也默认包含了该证书。由于谷歌 Chrome、苹果 Safari 和微软 Internet Explorer 都是使用操作系统的证书存储区,所以这些浏览器,以及使用相同内核的浏览器都默认支持 StartSSL 安全证书。(请注意这是操作系统相关的。)
能被浏览器默认支持是很有吸引力的,这样用户通过 HTTPS 加密连接访问服务的时候就不会被提示证书错误。很多用户看到了显眼的证书错误提示可能就急忙关闭页面或程序了。
CAcert¶
CAcert.org 是一个社区驱动的安全证书颁发机构,2003年7月注册成立于澳大利亚新南威尔士州。从 2005年10月开始提供 Class 1 和 Class 3 根证书(Root Certificate),Class 3 证书是 Class 1 的具有更高安全性的分支。截止到 2012年1月,CAcert 已经拥有超过 200,000 名认证用户,发放了超过 800,000 份证书。
CAcert 免费向所有人颁发证书。其目标是通过使用加密技术,以促进计算机安全意识和教育,特别是 X.509 标准。
对于新手,CAcert 提供一种非常简单快捷的方法来获得证书 —— 注册后即可申请自动签发,完全由程序自动完成 —— 可以用于加密电子邮件,证明电邮地址来源等。对于提供服务的管理员,CAcert 提供主机(域名)和通配符证书,可以用于验证网站、POP3、SMTP 和 IMAP 连接等。并且不限制证书的强度(级别)。对于那些有极高安全加密要求的用户,CAcert 还启动了 CAcert 保证计划(CAcert’s Assurance Programme)和信托网站(Web of Trust)。通过的话就可以拥有自己的身份验证,还包括更长的证书有效期、在证书中包含个人姓名和电子邮件等额外的好处。
Web of Trust 是很有意思的,它要求参加认证的用户面对面进行认证,相互验证对方的身份证明材料。CAcert 维护用户帐户的认证点数(number of assurance points)。认证点数可以通过获得“担保人(Assurer)”的认证来积累(每次认证都由担保人根据自己的级别来指定点数)。拥有更多认证点数的用户就拥有更高的信任度,也就可以拥有更多的权利,比如在证书中写入自己的姓名和拥有更长的有效期等。当拥有至少 100 个认证点数后就是“准担保人(Prospective Assurer)”。之后可以申请参加“认证挑战(Assurer Challenge),通过后即可成为担保人,可以认证其他用户。担保人拥有的认证点数越多,就可以给通过其认证的用户分配更多点数。这实际上也是 CAcert 为了申请将根证书加入 Firefox 所要做的准备工作之一。
介绍了这么多背景资料,相信读者已经大致了解了 CAcert 的公信力了。再来介绍一下它被系统和浏览器信任的情况吧。很不幸的是,因为 CAcert 是一个免费证书颁发机构,微软以及苹果的系统都没有将其列入证书存储区,各大流行的浏览器也没有这么做(目前正在努力申请加入 Firefox 证书存储区)。不过 CAcert 在各大开源系统中倒是很受欢迎,例如(via WikiPedia):
- Arch Linux
- Ark Linux
- CentOS
- Debian
- FreeWRT
- Gentoo
- Maemo (installed on Nokia Internet Tablets)(not on Nokia N900)
- Knoppix
- Mandriva Linux
- MirOS BSD
- OpenBSD
- openSUSE
- Ubuntu, Xubuntu, Kubuntu, Lubuntu (Not in CAcert inclusion list, but actually provided by package ca-certificates now.)
看来 CAcert 注定要成为一个游离于政府和商业之外的组织了。
后记¶
目前完全免费的 SSL 证书提供者就这两家了,其它基本上都是试用期免费。嗯,还有自己签发的也是免费的 :D
不过如果你运行了一个开源社区(需要通过 Open Source Initiative 的认证),Go Daddy 是可以为你免费提供一个 SSL CA 的。兴奋吧?
我一向认为互联网上没有绝对的安全。即便是拥有“绿栏”的 EV 证书,也不见得就能完全保证信息安全。所以需要安全的时候,我们自己要多加小心。
另外,之前网友抵制 CNNIC CA 的时间值得做个扩展阅读。©
本文发表于水景一页。永久链接:<http://cnzhx.net/blog/free-ssl-ca/>。转载请保留此信息及相应链接。