生命不止,奋斗不息。 --卡莱尔
经过几年的发展,Let's Encrypt越来越完善,使用起来更加方便,同时近期也将支持泛域名签发证书,所以今天我便再一次倒腾Let's Encrypt,顺便更新下博客,希望给大家带来帮助!
HTTPS相比于HTTP其安全性得到了大大的提高,但是相比于HTTP而言HTTPS的需要密钥证书,在不久之前,免费的证书还是很难寻找的,最常用的便是“沃通”免费证书。但是“沃通”的免费证书对于浏览器并没有那么友好,而且有不少人都主动的屏蔽“沃通”的证书。令人欣喜的是,一个免费的开源证书颁布机构产生啦,那就是Let's Encrypt。但是它和寻常的HTTPS证书不一样,它并没有直接提供证书,而是提供一段脚本,让你自己去生成证书,这就提高了使用门槛,所以便有了这篇博客~也是给自己留个备忘。
在教程开始之前,你需要注意的是:
- 本教程只针对Nginx服务器。
- 本教程使用的是Centos7的操作系统环境。
- Let`s Encrypt生成的证书有效期只有3个月,需要不断的重新签署。
安装前的准备工作:
- 你得有个服务器
- 准备一个可用的域名
- 拥有一定的Nginx服务器知识
开始安装:
这次我将提供两种方式安装使用Let's Encrypt,值得注意的是两种方式都是基于shell的,同时我没有使用官方不推荐的web服务器插件的方式,我们将使用Let's Encrypt签发相关证书,随后自己配置web服务器,最终实现https访问。在获得证书后,如何配置当前服务器,请自行百度解决。
- 使用官方推荐的certbot脚本完成相关配置
a.访问网站根据自己的系统及其web服务器选择相关脚本
b.使用相关命令安装脚本(nginx+centos7: sudo yum install certbot-nginx)
c.配置及其相关异常:
Q1:No module named 'requests.packages.urllib3'
请使用 (pip install requests urllib3 --force --upgrade)升级urllib3版本既可解决。
Q2:ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
请使用 (pip uninstall pyOpenSSL; pip install pyOpenSSL==16.2.0) 安装16.2.0版本的pyOpenSSL才可以,最新的17.0还是会出现报错
d.命令使用
成功安装了脚本,现在可以使用相关的命令进行证书签发。
certbot certonly --cert-name zxblog(这是一个别名,再重签的时候可以使用这个,就不需要长长的配置了) -d zxblog.our-dream.cn
接下来按照提示完成邮箱,协议同意等操作,即可签发相关证书。
- 使用社区提供的bash脚本完成相关配置
a.安装脚本
curl https://get.acme.sh | sh
更多安装方式请参考:https://github.com/Neilpang/acme.sh/wiki/How-to-install
b.签发证书【这里使用阿里云DNS的方式认证】
acme.sh --issue --dns dns_ali -d zxblog.our-dream.cn
更多签发方式请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert
DNS方式可以使用DNS供应商的API来实现自动验证,我使用的是阿里云API,更多的DNS供应商配置请参看:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
c.复制/安装证书
acme.sh --install-cert -d zxblog.our-dream.cn \
--key-file /path/to/zxblog.our-dream.cn/key.pem \
--fullchain-file /path/to/zxblog.our-dream.cn/cert.pem \
--reloadcmd "nginx -s reload"
d.第一次安装记得修改nginx的配置文件,生效HTTPS证书,以后将不用再修改,直接重新加载即可!
Tips:
使用HTTPS也会带来不少的困扰,典型的就是在网页中使用的外部资源也必须是HTTPS协议的资源,不然很可能加载不成功,这就导致了我们很多外部插件不可以使用,或者使用起来不方便,例如:畅言第三方评论、百度统计、百度自动站点提交以及很多开源CDN前端库等等。然而对于我这个小博客而言,这些显然都不是问题~
最后说两句:没有绝对的配置方法,只要能够配置成功就是好方法,我也是在不断的摸索和尝试中前行,如果您在使用中发现了当前方法的BUG或者有更好的方法也欢迎留言。总之,让自己的网站安全起来!
本文由 陌上花开 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jan 28, 2018 at 05:18 pm