摘要:为了推广协议,电子前哨基金会成立了,提供免费证书。部署,包含申请域名部署应用,并开启服务。安装使用获取证书对于,使用的插件获取。
为了推广HTTPS协议,电子前哨基金会EFF成立了 Let"s Encrypt,提供免费证书。
Let"s Encrypt
一个于2015年三季度推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过程的自动化流程,为安全网站提供免费的SSL/TLS证书。
部署HTTPS,包含
申请域名
部署 Web 应用,并开启服务。如 Nginx,Apache 等
获取证书
配置 Web,如商品监听,指定证书等。
本篇总结在 CentOS 和 Nginx 上安装 Let"s Encrypt 签发的证书的过程。
安装 certbot使用 certbot 获取 SSL 证书
sudo yum install epel-release
sudo yum install certbot
对于 Nignx ,certbot 使用 webroot 的插件获取 SSL。这款插件会在 [your webroot path]/.well-known 生成特殊的文件,在申请证书时,Let"s Encrypt 服务会通过 Http 来访问此文件,以签证服务器,所以在使用 certbot 获取证书之前,你需要确保此目录能被外界使用访问。
修改Nginx配置
可以先不修改 nginx 的配置,继续往下走,如果获取证书过程中提示无法访问 /.well-known,才去修改 nginx 的配置,在 server 块里添加如下代码
location ~ /.well-known { allow all; }
然后,重启或 reload nginx,即 sudo service nginx restart
获取证书sudo certbot certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com
--webroot-path 改为你的 webroot path, webroot插件会在此目录下生成前面提到的 .well-known
使用 -d 指定域名。example.com改为你的域名,如果有多个域名,可以多次 -d 指定
最终会在 /etc/letsencrypt/live/example.com 下,生成四个 PEM 文件
cert.pem: 域名证书
chain.pem:Let"s Enctrypt chain certificate
fullchain.pem:cert.pem 和 chain.pem 组成
privkey.pem:证书的私钥
执行 sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
生成 generate a strong Diffie-Hellman group,这一步不一定要
upstream product{ server 127.0.0.1:3001; } server{ ### ssl 配置开始 ### listen 443 ssl; ssl_certificate /etc/letsencrypt/live/stu.kenniu.top/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/stu.kenniu.top/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security max-age=15768000; ### SSL 配置结束 ##### server_name stu.kenniu.top; #charset koi8-r; #access_log logs/host.access.log main; # location ~ /.well-known{ # allow all; # } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://product; } }
ssl 相关的配置即完成了,在浏览器试一下 Https 已经可以访问
接下来新建一个Nginx的配置,将http的请求转发为https
自动更新证书因为 Let"s Encrypt 的证书有效期是90天,到期前要更新证书。certbot 提供了更新证书的命令 sudo cerbot renew。添加一个 conb job 来实现自动更新
sudo crontab -e
输入
30 2 1 /usr/bin/certbot renew >> /var/log/le-renew.log
35 2 1 /usr/bin/systemctl reload nginx
保存即可创建 cron job。以后每周1的凌晨2点30自动更新证书,2点35自动重启nginx。
参考链接
https://www.digitalocean.com/...
https://certbot.eff.org/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39366.html
摘要:四操作步骤使用自动生成证书注意使用该命令,可以自动改变配置文件如果下图中没有合适的,需要指定证书对应的如下配置更新自动更新注意需要重新添加阿里云证书使用查看是否成功 一、参考链接 1. HTTP 协议入门, by 阮一峰2. HTTPS 升级指南, by 阮一峰3. let encrypt, getting start4. certbot5. SSL Server Test 二、环境...
摘要:四操作步骤使用自动生成证书注意使用该命令,可以自动改变配置文件如果下图中没有合适的,需要指定证书对应的如下配置更新自动更新注意需要重新添加阿里云证书使用查看是否成功 一、参考链接 1. HTTP 协议入门, by 阮一峰2. HTTPS 升级指南, by 阮一峰3. let encrypt, getting start4. certbot5. SSL Server Test 二、环境...
摘要:四操作步骤使用自动生成证书注意使用该命令,可以自动改变配置文件如果下图中没有合适的,需要指定证书对应的如下配置更新自动更新注意需要重新添加阿里云证书使用查看是否成功 一、参考链接 1. HTTP 协议入门, by 阮一峰2. HTTPS 升级指南, by 阮一峰3. let encrypt, getting start4. certbot5. SSL Server Test 二、环境...
阅读 3856·2021-11-16 11:50
阅读 883·2021-11-11 16:55
阅读 3608·2021-10-26 09:51
阅读 806·2021-09-22 15:03
阅读 3328·2019-08-30 15:54
阅读 3238·2019-08-30 15:54
阅读 2438·2019-08-30 14:04
阅读 888·2019-08-30 13:53