如何免费将站点升级到 HTTPS
发布于:2019-11-13 17:06,阅读数:222,点赞数:2
# 引言 本文不包含建站、正常的 DNS 解析等内容教程,在这里假设读者已经建好了 HTTP 站点,并且想要升级到 HTTPS。在创建证书前需要进行 DNS 验证,请确认你有权限操作这个域名的解析。 # 正文 ## 服务提供商 阿里云本身可以注册免费 HTTPS 证书,但是免费版是不包含二级域名的。 在你的网站有二级域名的情况下,如`blog.xxx.com`,`image.xxx.com`,阿里云的免费证书需要分别为每个域名创建证书。免费证书是不能创建`*.xxx.com`这种通配证书的,所以这个方案就不在考虑范围内了。 幸运的是有一些服务商提供免费的通配证书,我选择的是[SSL For Free](https://www.sslforfree.com)。不过这里的证书有效期只有三个月,需要每三个月来手动更新一次证书。(网站上说到期之前会有邮件提醒,然而我并没有收到过) ## 注册和验证 输入需要创建证书的域名,注册账号。 接下来会进入 DNS 验证的阶段,只需要把以下内容增加一条 DNS 解析即可完成验证。  假设读者使用阿里云作为 DNS 解析商,把上面的 host 和 value 填到阿里云后台的解析处即可:  阿里云的 TTL 最低是 10 分钟,选 10 分钟即可,我的使用过程中并不影响。添加以后,这里可能会有点延迟,稍微等一下,继续操作,就能过下载到证书了。 其他平台也是一样的,添加一条解析即可。 ## 证书 下载到的证书有三个文件。 - ca_bundle.crt - certificate.crt - private.key 假设读者使用`Heze`框架(底层为 PerfectHTTP 的 SSL 接口),需要使用到证书和私钥两个后缀为`pem`的文件。 使用命令行转一下格式就可以用了: ```bash openssl x509 -in certificate.crt -out certificate.pem -outform PEM openssl rsa -in private.key -text > private.pem ``` 根据平台不同,使用到的证书文件格式可能不同,请自行进行转换。 # 结语 这家服务商的证书我已经用了四个月,期间更新过一次证书,期间除了某些国产 APP 的内置浏览器会不信任证书以外,主流浏览器能够认,没有太大的问题。 有更好的免费服务商欢迎评论。
评论:4条
1楼:2019-11-14 20:51:36
GECKO:
Let's Encrypt 也支持通配符证书了, 用 CronJob 定时更新也很方便
2楼:2019-11-14 23:58:10
yuu:
引用:1楼
有效期多久?我希望能找个有效期长点的,三个月一换有点麻烦。
3楼:2019-11-16 21:35:51
GECKO:
引用:2楼
应该也是三个月。 但按照官方教程配置好 CronJob 就自动更新了,完全不用操心,很简单的。 如果觉得官方提供的 certbot 需要 Python 环境比较麻烦,也可以用 [acme.sh](https://github.com/Neilpang/acme.sh)。 [Wiki ACME](https://en.wikipedia.org/wiki/Automated_Certificate_Management_Environment) 证书自动管理
4楼:2020-07-27 14:55:05
yuu:
ssl for free 经过改版,已经不能免费创建通配证书了。推荐使用[acme.sh](https://github.com/acmesh-official/acme.sh)。