Let's Encrypt 配置过程记录
原文链接 http://menglei.tk/2016/10/18/certbot/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
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,或者直接从官方提供的下载地址进行下载。
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
2.配置
上面下载到的是一个自动安装脚本,运行这个脚本,会自动下载并安装所需要的各种依赖,下载完成之后,我们可以再次运行这个脚本进行证书的申请。但是,此时可以先创建一个配置文件,省去每次都要输入一长串命令的麻烦。Certbot的配置文件默认存放位置是/etc/letsencrypt/,默认的文件名是cli.ini,所以我们创建一个文件/etc/letencrypt/cli.ini,内容如下:
rsa-key-size = 2048 //密钥长度,2048足够
email = foo@example.com //您的邮箱地址
domains = example.com, www.example.com //要申请证书的域名,多个域名用逗号分隔
text = True //是否使用文字交互,如果选false,将使用ncurses交互
authenticator = webroot //域名的验证方式
webroot-path = /usr/share/nginx/html //指定http服务器的root文件夹
3.申请
只要执行 certbot --config /etc/letsencrypt/cli.ini
即可按照cli.ini中的配置内容进行申请证书的操作,申请成功之后,证书文件会存放在 /etc/letsencrypt/archive/example.com
文件夹中,同时,在 /etc/letencrypt/live/example.com/
中,会有相应的软连接,我们在使用的时候,可以直接利用软连接即可,避免续期之后的证书文件名变更导致nginx配置出错。
4.使用
在nginx的ssl配置时,按照如下配置即可。
ssl_certificate /etc/letsencrypt/live/appinn.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/appinn.com/privkey.pem;
5.续期
由于Let's Encrypt 证书的有效期只有三个月,我们必须在到期之前对其进行续期。续期的操作是执行命令行 certbot-auto renew
。我们可以创建定时任务,保证服务可以一直有效。
运行 crontab -e
,同时在下面加入一行:
00 3 * * 0 certbot-auto renew
01 3 * * 0 service nginx reload
每周日凌晨三点钟运行续期服务,如果证书即将到期,即可自动对证书进行续期三个月,同时三点零一分会自动重新加载nginx,使得新申请的证书生效。
这样,HTTPS部分就已经配置完成并且不需要任何操作了,只要服务器一直在运行并且Let's Encrypt 服务没有出意外,我们的HTTPS就会一直有效下去。