洗脱罪名
开了博客之后,连不更博都有罪恶感了,哇!我不是一条称职的咸鱼。
临近毕业,就因为毕设的事情忙起来。唉,毕设这个事情怎么说。其实难度没有那么高,真的要做的话,是不会做太久的。可是,问题就在于,咸鱼只想每天咸着。不管说是懒癌,还是怠惰,还是拖延症,每天就这么拖着了。于是,连博客也拖着了。
想着再这么拖下去,怕是要废站了。因此,抱着我今天就算是水也要水一篇的想法,记录一下建站时上SSL的一些微小的工作。
HTTPS
选择SSL证书的时候,没有多想,对于第一次做个人网站的萌新来说,肯定要先上手一个免费的试试,所以选择了Let’s Encrypt,免费,90天有效期。
我上https的时候,是手动生成Let’s Encrypt证书的。直到后来想要解决自动续期问题时,才发现了官方的自动化工具-Certbot。
Certbot
Certbot是一个易于使用的自动客户端,可为Web服务器提取和部署SSL / TLS证书。官网中给出了使用Certbot的详细步骤。不过自己部署的时候并没有完全按照官方文档的步骤,因此想稍作分享。以Debian8和nginx为例。
Certbot安装
首先需要添加Backports包。Backports是Debian下测试的重新编译的包。修改sources.list,添加一行:
deb http://ftp.debian.org/debian jessie-backports main
然后运行apt-get update
更新之后,安装Certbot:
$ sudo apt-get install certbot -t jessie-backports
生成证书
创建配置文件:
$ sudo mkdir /etc/letsencrypt/configs
$ sudo vim /etc/letsencrypt/configs/example.com.conf
配置文件的内容如下:
1 | \# 替换域名和邮箱 |
一切就绪之后,运行certbot:
$ sudo certbot -c /etc/letsencrypt/configs/example.com.conf certonly
成功运行之后,服务器所需要的证书都生成好了。他们会被放在/etc/letsencrypt/live/example.com下,包括cert.pem, privkey.pem, chain.pem, fullchain.pem.
Nginx配置
nginx的默认配置文件:
1 | server { |
重点只需要关注其中几行,下面一一说明。
ssl_certificate
和ssl_certificate_key
分别对应fullchain.pem和privkey.pem,填上正确的路径就OK了。
ssl_dhparam
通过下面命令生成:
$ sudo openssl dhparam -out /path/ssl/dhparam.pem 2048
放在哪个文件夹可以随自己的喜好,我一般都是放在/etc/ssl下。
然后说明一下ssl_trusted_certificate
,这是一个可选部分,根据nginx官方所说,ssl_certificate
已经包含了,所以不需要再提供,因此注释掉。
至于resolver
,是填写DNS服务器的,我直接忽略了,有没有影响倒是没有细究。
配置完之后重启nginx就可以看到网站的HTTPS了。
自动续期
之前看过相关的博客,都是自己写脚本实现自动续期。而Certbot官方文档中说明了Certbot支持自动续期的功能,因此直接使用就好了。
# certbot renew --dry-run
到此就完成了HTTPS的配置。
Tips
不同的linux版本,不同的应用,部署的步骤都不一样,Certbot官方上都标注了。总得来说,Certbot支持Apache、Nginx、Haproxy、Plesk,支持大部分的linux版本。