let's encrypt
let's encrypt是一个免费的ssl证书发放机构,且是被信任的,即不会像12306那样出现非信任的标志(因为12306使用的是自己的证书),对于买不起ssl证书的旁友可以使用
证书获取
环境:
- docker
- nginx
- centos7
先clone一份到本地,目录自选
执行生成证书
sudo ./letsencrypt-auto certonly --standalone --email 邮箱地址 -d 域名(邮箱用作即将过期提醒)
生成的证书和相关文件保存在
/etc/letsencrypt/live/域名
主要4个文件:
cert.pem 申请的服务器证书文件
privkey.pem 服务器证书对应的私钥
chain.pem 除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书
fullchain.pem 包含服务器证书的全部证书链文件
Nginx配置
ssl on;
ssl_certificate /etc/nginx/fullchain.pem;
ssl_certificate_key /etc/nginx/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
由于我用docker运行nginx,提前将fullchain.pem和privkey.pem两个文件映射到nginx容器中/etc/nginx/目录下即可
续期
提前停止nginx容器,否则无法更新
进入letsencrypt目录中执行
./letsencrypt-auto renew --email your-email-address --agree-tos
邮箱地址就是生成证书时使用的邮箱地址
续期成功后记得重新构建nginx容器保证证书被替换