HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2018-01-05 14:24:29

如果要启用HTTPS,我们就需要从证书授权机构(以下简称CA) 处获取一个证书,Let's Encrypt 就是一个 CA。我们可以从 Let's Encrypt 获得网站域名的免费的证书


Certbot 是Let's Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let's Encrypt 证书。Certbot 是支持所有 Unix 内核的操作系统的


  1. 安装Certbot客户端
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
  1. 获取证书

sudo ./path/to/certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is


这个命令会为 example.com 和 www.example.com 这两个域名生成一个证书,使用 --webroot 模式会在 /var/www/example 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。这个命令在大多数情况下都可以满足需求,



安装客户端及获取证书的方式可以看官方教程

https://certbot.eff.org/all-instructions/#centos-6-none-of-the-above


证书生成完毕后,我们可以在 /etc/letsencrypt/live/ 目录下看到对应域名的文件夹,里面存放了指向证书的一些快捷方式。


使用 openssl 工具生成 dhparams,作用是使ssl更加安全

openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048



这时候我们的第一生成证书已经完成了,接下来就是配置我们的web服务器,启用HTTPS。



listen 443


ssl on;

ssl_certificate /etc/letsencrypt/live/网站域名/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/网站域名/privkey.pem;

ssl_dhparam /etc/ssl/certs/dhparams.pem;

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers HIGH:!aNULL:!MD5;



强制跳转 https


server {

listen 80;

server_name your.domain.com;

return 301 https://$server_name$request_uri;

}




自动 更新ssl,因为证书只有90天的有效期


$ sudo ./path/to/certbot-auto renew --dry-run



如果这个命令正确工作,可以安排自动更新添加一个cron作业或系统定时器运行以下:


./path/to/certbot-auto renew



官方cron脚本 (具说是每天中午12点和晚上12点运行):

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && ./path/to/certbot-auto renew

分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com