GOGETSSL 证书购买记

TL;DR

为什么要购买 SSL 证书

在这个神奇的国度,我们无时无刻都在被xx着,移动/联通等挟持我们的淘宝,自动为我们加上淘宝客的小尾巴,他们便以此牟利!连上个百度,都同样面临着被挟持的可能!

这一切的原因,都要归咎与不安全的 http 协议,你的运营商通过各种手段来对你的 http 访问进行挟持,对你的正常浏览进行绑架。显然,淘宝、百度等都意识到了这个问题,于是他们现在都已经启动了 https 访问了。

有了 SSL 证书,可以有效防止您遭到中间人攻击,因为如果运营商想让在你的 https 过程中插入恶意代码,必然会导致证书被破坏,以致浏览器会提示我们证书有问题,这时候您就应该知道,你正在被恶意中间人进行攻击中,而 SSL 证书,就保护了您的访问!

在谷歌早已经对启用了对 https 的网站进行提高权重的加成外,百度近日也提出了要照顾启用了 https 的网站,这无疑对站长来说是一个好消息,同时对广大网民来说也是一个好消息!

为什么选择 GOGETSSL

老实说,Let's Encrypt 将于今年的9月正式上线,这是一个全免费的、非常简单的 SSL 证书签发机构,相信很多人都一直在等待这他们的上线,我也不例外,只是我们证书快要到期了,所以不得不提前去其他家进行购买。

GOGETSSL 与很多厂商进行了合作,包括 Comodo 、GeoTrust 、Symantec 、thawte 、RapidSSL 等几家大厂,我们可以以一个很低的价格买到他们的各种证书,我们可以买到普通的 DV 证书,也可以买到高端的 EV 证书,如果需要,我们还可以买到用来签发软件的证书。

我在很久之前就加入了 GOGETSSL 的 Reseller 的行列,然而我一直都很少去购买,感觉也对不起他们,于是乎,我就把目光投到了他们的身上!

准备工作

Private Key 的生成

Private Key 是证书中一个必不可少的证书,有了他,你就可以声明这个网站运行在一个安全的服务中。如果忘记了你的 Private Key ,你将无法正常使用你的证书,没有一个与之匹配的私钥能解开你的证书。

证书的加密长度应该选择多少,正常来说,2048就已经是足够的了。太大的话会加重 Web 服务器的负担,太小的话会相对来说不太安全。

openssl genrsa -out yourdomain.key 2048

这样,你就生成了一个 RSA 密钥了。

一定要保存好你的密钥

CSR 文件的生成

CSR 的学名叫 CERTIFICATE REQUEST ,用来提供给Comodo之类的机构来生成证书。

一般来说,一个 CSR 包含以下内容:国家、省、城市、机构名称、单位、域名、邮箱

[email protected]:/var/ssl# openssl req -new -key yourdomain.key -out yourdomain.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GuangDOng
Locality Name (eg, city) []:ShenZhen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SHIELD
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:imlonghao
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

密码强烈建议不要设置,否则可能会导致Nginx无法正常启动,导致系统无法正常启动。

生成完之后,使用以下代码查看你的 CSR。

cat yourdomain.csr
-----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST-----

懒人一键生成

https://www.gogetssl.com/online-csr-generator/

来自 GOGETSSL 官方的在线生成系统,按照网站提示输入资料后,您的申请请求和密钥会显示在网站上,并会以邮件的方式发送到你的邮箱中。

购买 SSL 证书

首先,我们需要登录 GOGETSSL 的网站后台,如果您不想注册帐号的话,可以找我代购的。:)

登录后,点击上方的 New Order ,选择我们需要购买的证书,点击 Order

这里我们选择最便宜的 Comodo PositiveSSL ,其实这里的种类那么多,我觉得不同的区别就是 DV SSL 和 EV SSL 等的区别,一个只是普通的小绿锁,另一个则是类似 Github.com 的小绿条

这里我们可以选择我们需要购买的年数,购买越久的话单年的价格就越便宜!!

下一步我们选择付款的方式,GOGETSSL 支持通过账户余额、PayPal、Credit Card、WireTransfer、Skrill、WebMoney、AMEX等付款方式。

付款完后,我们会跳转回用户中心首页,他会提示我们我们有一笔未完成的订单,因为我们还没去签发我们的证书,点击 Click To Fix 进入下一步。

找到我们刚刚购买的证书,点击 Generate

到了下一步,我们需要选择这是新订单还是需要订单,GOGETSSL 对于需要订单,提供90天的额外奖励。

选择好我们的 Web 服务器类型,其实关系不大。将我们刚刚的 CSR 复制过来,注意是完全复制,包括第一行和最后一行。

另外建议选择 SHA-2 ,因为如果是 SHA-1 的话,谷歌浏览器会提示是不安全的。

下一步是验证域名的所有权。GOGETSSL 支持四种不同的方式进行验证。

邮件验证、CNAME记录验证、http文件验证、https文件验证。

邮件验证是最常规的一种验证方式了,支持你的 WHOIS 邮箱,以及类似 [email protected] 这种的管理员邮箱。

CNAME记录是要给你的域名添加一条特定的CNAME记录,来验证你的所有权。

http文件验证、https文件验证大同小异,就是提供一个 txt 文件,要求您放置在您网站的根目录,之后 Comodo 会去访问,判断内容是否和所提供的相同。

对于我 Tornado 的网站来说,我建议选择第一种或者第二种,比较方便。

然后我们需要再次输入我们的信息,然后下面勾选同意网站服务条款。

当你看到下面这图时,您的 SSL 证书已经接近 issue 了。我们需要通过上面你所选的方式去验证你的所有权!

当你完成域名所有权的验证是,Comodo 和 GOGETSSL 都会给你发送你的证书。

Comodo 通常比 GOGETSSL 更快,可能是 GOGETSSL 和 Comodo 的接口存在延迟导致的。

解压后,我们可以得到这么四个文件

我们需要新建一个文件,将他发给我们的证书按照以下方式排列:

yourdomain_com.crt
COMODORSADomainValidationSecureServerCA.crt
COMODORSAAddTrustCA.crt

切记你的证书要放在最上面,其次是Comodo的两个证书。

配置 SSL 服务器

限于文章篇幅,本章节内容不是重点,请注意:不是重点。请自行谷歌

效果

「旧证书」

「新证书」