MENU

免费SSL证书提供商盘点和一些杂谈

August 19, 2016 • 扯淡,网络,分享阅读设置

前言

近一两年,越来越多的网站采用了全站HTTPS的安全策略。从前,我们感觉使用HTTPS是出于用户安全的考虑;然而现在越来越多地被采用的HTTPS,更多地来说,是为了页面内容的安全。网络劫持的方法可以说是层出不穷,相信不少人都是深受国内运营商困扰,强行插入广告可以说是见怪不怪了。值得一提的是,近两年大家可以发现百度也开始使用HTTPS了,不论是为了用户考虑,还是担心ISP的劫持会影响自己的广告业务,不得不说这个技术啊,是大势所趋。

这个博客其实很长一段时间都是使用HTTPS的,因此本次将要介绍的三家SSL证书提供商的产品我都是真正使用过的。希望论述的内容对大家有所帮助。

本次将要介绍的三家服务商为:

  1. StartCom
  2. WoSign
  3. Let's Encrypt

第二段前言

在正式开始主要内容之前,我还想和大家聊一聊CloudFlare这家公司。大家应该知道,CloudFlare是做CDN的,实力也非常的强大。CloudFlare在提供商业服务的同时,也充分考虑到小网站的需求,提供了免费的方案。CloudFlare的免费方案无疑是成功的,我们能够发现有许多网站都使用了CloudFlare的服务。

CloudFlare的领先之处在于它不仅提供了基础的CDN功能,还能充当一个合适的反向代理,更是接入网站的有效防火墙。为什么在介绍SSL证书商的文章里面提到CloudFlare呢?是因为CloudFlare还提供了HTTPS的服务。CloudFlare的通用SSL证书可以方便地解决HTTPS部署的问题。CDN中提供HTTPS,现在也不少见了。特意提到CloudFlare,是因为目前来看免费且免备案的,好像就这一家。

关于CloudFlare的内容到此就结束了,因为:CloudFlare免费版对于中国大陆访客来说,体验、速度算不上好。

正文部分

StartCom SSL

StartSSL算是老牌的免费SSL提供商,成立于2005年。可能是最早提供免费SSL的公司。StartSSL能够为几乎所有的域名提供SSL证书,如果你需要的域名后缀不在可用列表里,可以联系客服,他们会立即添加。

我在2013年申请了StartCom的SSL证书。免费的SSL证书是StartSSL Class 1,有效期1年。首先你需要注册StartSSL,获得你的身份证书,并且用这个证书登录。身份证书有效期也是1年。登录之后就可以申请证书了,验证方式为邮箱验证,需要做好邮箱方面的准备工作。身份证书、SSL证书都可以随意续签。证书签发时会强制要求设置密码,这给自动化部署造成了一定的麻烦。

2013年时StartCom的Class 1证书支持并不全面,FireFox、Android等场合下证书均不被信任,使用有一定的局限性。不太清楚现在这个问题解决得怎么样了。

推荐指数:☆

WoSign

WoSign沃通公司是2002年成立的中国的电子认证服务公司,近几年推出了免费SSL证书的签发服务。

沃通免费SSL整体体验良好。申请过程简单流畅:注册沃通账号,可选密码或证书验证方式;自己生成CSR请求文件或服务端自动生成;邮箱、DNS解析或HTTP方式验证域名所有权;取得证书。若CSR由服务端生成则必须设置密码,自己生成则不必。沃通免费SSL证书可选1年有效期或2年有效期,是本次介绍的三家中一次性申请有效期最长的提供商。

如下图,目前我正在使用的就是沃通免费SSL证书。
Wosign Free SSL

推荐指数:☆☆

Let's Encrypt

Let's Encrypt是2015年下半年出现的数字证书认证机构,是非营利性组织,在多家机构的支持下,提供完全免费的服务。相关内容是开源在GitHub上的。Let's Encrypt的口号是:免费、自动、开放

因为Let's Encrypt开放的特性,许多人都为其编写了自动签发的客户端,官方网站上给出了这样一个列表。你可以根据自己的需要选择一个,或者直接使用官方提供的版本。官方申请证书的流程,Hans前几天已经展示出来了。当然,你也可以选择传统的方式,按部就班地提交CSR、验证域名……我使用过ZeroSSL提供的浏览器申请Let's Encrypt证书的工具,体验也还不错。

Let's Encrypt目前申请的证书有效期为90天,是最短的。作为一个开放性的项目,目前已经有人开发出全自动续签的工具,但Let's Encrypt是否是最好的选择呢?这就见仁见智了。

推荐指数:☆☆

Nginx下启用SSL最简单的设置

通常来说通过软件包管理器安装的来自于Linux发行版或Homebrew软件源的Nginx是带有SSL支持的,在此我们默认Nginx支持SSL。

HTTPS协议的默认端口是443,因此在server块中,listen 443;是必要的。你也可以设置为需要的端口。

把申请时生成的密钥和申请到的证书文件放在合适的地方。之后我们需要加上:

ssl on;
ssl_certificate /PATH/TO/CRT/FILE/crt.crt;
ssl_certificate_key /PATH/TO/KEY/FILE/key.key;

当然证书和密钥的后缀是不一定的,明白这个意思即可。设置完后,可以nginx -t测试一下配置、文件是否均准备妥当。若没有问题,重启Nginx,HTTPS的配置应当就生效了。

设置301重定向实现协议无缝切换

现在已经成功配置了HTTPS访问,但是来自外部链接的访客可能仍然在通过未经加密的HTTP访问网站。设置301重定向是一个简便且有效的方法。在Nginx的配置文件中修改:

server
{
    listen 80;
    server_name yoursite.com;
    return 301 https://$server_name$request_uri;
}

这样一来,走HTTP的就会自动跳转到HTTPS了,并且这是一个采用HTTP状态码的实现,比较优雅。

结语

之前翻草稿箱,看到2013年就写过SSL相关的东西,只不过草草几笔后就没有再完善;这篇文章始于2016年08月17日,却一拖再拖到19日凌晨才完稿。人啊,还是要有斗志才行!也希望今天介绍的内容能对各位读者起到一定的帮助作用,促进HTTPS的进一步推广使用。

Archives Tip
QR Code for this page
Tipping QR Code