scomper's blog

博客添加证书的经验分享

2017.11.24

将博客迁移到 Bitcron 以后,按照部署建议一开始就在后台设置中启用了「高级 - 强制 SSL」,这样访问地址就是 https:// 开头。如果是使用 Bitcron 分配的 *.bitcron.com 域名,SSL 的部分是不用操心了,Bitcron 都包办了,但是像我这种已经有自有域名的就需要单独添加证书。

Bitcron 后台集成了免费的 Let's Encrypt 证书,申请过程也很简单,在后台点击 ①「 Let's Encrypt 证书」,选择域名 ② 一路走到底就可以了。看上去原本是挺美好的一个过程,但是免费的 Let's Encrypt 证书默认 2 个月需要续签一次,虽然 Bitcron 做了自动续签的处理,但是如果遇到 Let's Encrypt 调整加密方式自动续签可能会失败,不巧自己刚好就遇到一次,而且从 Bitcron 后台访问 ① 也打不开证书申请页面 ,也就谈不上删除旧证书重新来一遍,直到求助 Bitcron 技术支持才人工干预解决。

Bitcron 证书的填写位置

为了不在重复的地方再次跌倒,开始了解如何部署自有证书。经过了解 Bitcron 同样支持自有证书的定义,只需要在后台「高级」设置中「SSL Certificate Key」和「SSL Certificate」两个地方填上密钥保存配置就可以,一般 2 小时左右再查询就生效。


那么问题来了,A 和 B 这两个密钥又要从哪里获取呢,A 是个人密钥 Key(私钥),B 是 SSL 网站提供的证书密钥(可以简单理解成公钥)。A 的个人密钥在生成 CSR 文件的时候会同时获得(请妥善保存生成好的 CSR 文件和 KEY 文件)。

CSR是 Cerificate Signing Request 的英文缩写,即证书请求文件,申请和购买 SSL 证书之前需要先创建 CSR 文件。证书申请时只要把 CSR 文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

CSR 信息的生成

很多网站都提供 CSR 的在线生成服务,域名服务、SSL 证书一类的网站都提供,为了操作方便和隐私安全方面的考虑,最后还是选择了在 SSL 证书申请的网站生成 CSR,例如 https://www.gogetssl.com/online-csr-generator/

CSR 文件的申请需要填写一些基本的信息,Common Name 也就是你的域名,如果是单域名的证书填写scomper.me 即可,如果要申请泛域名的证书填写 *.scomper.me,填写好其他内容点击「Generated CSR」就好了,随后网页会显示并发送包含 CSR 和 Private Key 的邮件到你填写的邮箱。这里的 Private Key 也是前面提到的 A 部分的密钥。

申请证书

有了 CSR 信息,就可以去申请证书了。推荐第一次申请的用户先申请 Comodo Free SSL (3个月)免费证书熟悉一下流程,也可以看看最后生效的结果。PS:免费证书只支持单域名,如:scomper.me,*.scomper.me 这样的泛域名不支持。

点击「Create New Order」创建订单,选择产品类型「Select product type - SSL Certificates」。

如果没有在网站注册帐号,下一步需要注册一个,登录后订单会出现在你的控制台(Dashboard)未完成列表(incomplete)之中,点击 Generate 继续。

在 Paste your CSR 中填写前一步生成的 CSR 信息,注意复制的时候包含起始的 ---BEGIN 和结尾的部分。

点击「Validate CSR」继续,如果 CSR 没有问题会弹出下一步的邮箱验证页面,否则会报错,提示重新生成 CSR。免费证书只支持单域名,如:scomper.me,*.scomper.me 这样的泛域名不支持,另外生成 CSR 信息时最好用拼音和英文,不要包含汉字。

证书验证需要域名后缀的邮箱,如果没有开通域名的邮箱服务只能先回到域名注册的地方开通邮箱服务,例如,开通 admin@scomper.me 的域名邮箱,确认自己能收到这个邮箱的信以后,证书申请这边才能继续。

开通域名邮箱

我的域名是在 name.com 申请的,当时也没有开启域名邮箱,于是不得不回到 name.com 开通域名邮箱服务(Name.com Email ),添加了一个 admin@scomper.me 的邮箱。DNS Records 中使用 DNS Templates DNS 定义模板选择了 Name.com email,添加了 3 条 MX 记录。至此邮箱才算开通。

域名证书的邮件

确认邮箱能接收邮件后回到,SSL 申请页面填写好邮箱下一步,提交一份域名管理员的联系信息( Administrative Contact)后会收到域名邮箱验证邮件,Comodo Trial SSL 申请证书的后台也会进入等待状态。

复制下方的验证码,点击链接在网页输入完成验证。至此,证书申请的步骤就都结束了。稍等片刻,会陆续收到几封邮件,其中一封会包含 SSL Certificate 信息(公钥),由三个密钥段落组成,样式如下,这个也就是我们需要在 Bitcron 后台填写的 B 的部分:

-----BEGIN CERTIFICATE-----
MIIFPDCCBCSgAwIBAgIQMJywqwTBcc7eB3mm2R6rVDANBgkqhkiG9w0BAQsFADCB
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.etc
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
the second one
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
the third one
-----END CERTIFICATE-----

验证证书的有效期

在邮件中复制 SSL Certificate 粘贴到网站后台,配置好后,大概需要 1-2 小时证书才会生效(服务器端证书缓存所需的时间),证书生效后在浏览器里输入 https://scomper.me,访问你的域名,点击网址前的小锁图标就能看到具体的证书信息,以及到期时间。

PS:每个证书都是独立的,一个域名可以有 N 个证书。泛域名(Wildcard)是所有的二级域名都可以用,当然价格也不一样。

--「壹页单章」会员计划 --

Comments
Write a Comment
  • Fhyb168 reply

    你好!可以麻烦您发送一个Bitcron的邀请吗?谢谢!

  • scomper reply

    @Fhyb168 还剩 2 个邀请 https://bitcron.com/login?invite_code=a92918bea52cee557211754a3f8d8049779920e9875

  • singular78 reply

    @scomper 感谢分享!晚上回去体验一下