Let’s Encrypt 是一个免费的SSL证书机构,可以通过Certbot工具进行申请。
Let’s Encrypt 网站: https://letsencrypt.org/
Certbot 网站: https://certbot.eff.org/
Certbot Github: https://github.com/certbot/certbot
测试环境: Ubuntu 14.04, python 2.7, nginx 1.4.6
申请过程
1.安装
首先要保证电脑中已经安装了git和nginx,并且能够正确运行。
安装certbot可以从github上面clone,或者直接从官方提供的下载地址进行下载。
|
|
2.配置
上面下载到的是一个自动安装脚本,运行这个脚本,会自动下载并安装所需要的各种依赖,下载完成之后,我们可以再次运行这个脚本进行证书的申请。但是,此时可以先创建一个配置文件,省去每次都要输入一长串命令的麻烦。Certbot的配置文件默认存放位置是/etc/letsencrypt/,默认的文件名是cli.ini,所以我们创建一个文件/etc/letencrypt/cli.ini,内容如下:
|
|
3.申请
只要执行 certbot --config /etc/letsencrypt/cli.ini
即可按照cli.ini中的配置内容进行申请证书的操作,申请成功之后,证书文件会存放在 /etc/letsencrypt/archive/example.com
文件夹中,同时,在 /etc/letencrypt/live/example.com/
中,会有相应的软连接,我们在使用的时候,可以直接利用软连接即可,避免续期之后的证书文件名变更导致nginx配置出错。
4.使用
在nginx的ssl配置时,按照如下配置即可。
|
|
5.续期
由于Let’s Encrypt 证书的有效期只有三个月,我们必须在到期之前对其进行续期。续期的操作是执行命令行 certbot-auto renew
。我们可以创建定时任务,保证服务可以一直有效。
运行 crontab -e
,同时在下面加入一行:
|
|
每周日凌晨三点钟运行续期服务,如果证书即将到期,即可自动对证书进行续期三个月,同时三点零一分会自动重新加载nginx,使得新申请的证书生效。
这样,HTTPS部分就已经配置完成并且不需要任何操作了,只要服务器一直在运行并且Let’s Encrypt 服务没有出意外,我们的HTTPS就会一直有效下去。