使用 let's encrypt certbot部署https网站
2018-01-14 23:33
393 查看
前言
let’s encrypt 是免费的ssl/tls 证书颁发的机构,致力于实现整个Web的TLS/SSL认证。https可降低网站被劫持的风险,并具有更好的加密性能,避免用户信息泄露,增强网站的安全性。准备
已解析正确的域名 www.anteoy.siteA记录所指向的服务器
nginx
环境
GCE ubuntu16.04let’s encrypt认证过程
certbot是let’s encrypt的官方客户端工具,客户端在认证过程中会在host上生成自己的加密文件,let’s encrypt服务端访问客户端提供的域名并尝试去获取这个文件,如果成功获取并确认是客户端生成的正确文件,则确认客户端所在主机的域名控制权,然后开始为此域名颁发CA证书。部署过程
使用nginx以便let’s encrypt验证域名sudo apt-get install nginx
编辑配置文件,配置nginx的webroot目录和需要授权访问的隐藏目录.well-known
vi /etc/nginx/conf.d/cert.conf
server { listen 80; root /usr/share/nginx/html; server_name www.anteoy.site; location ~ /.well-known { allow all; } }
平滑重启nginx服务器
nginx -s reload
生成CA证书
sudo certbot certonly --webroot -w /usr/share/nginx/html/ -d www.anteoy.site --agree-tos --email anteoy@gmail.com
使用 –webroot 模式会在 /var/www/example 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,letsencrypt 会通过访问 www.anteoy.site/.well-known/acme-challenge 来验证此域名是否绑定的这个服务器。–agree-tos 参数是你同意他们的协议。注意certbot提供了两种CA证书生成方式,其中一种是certbot提供服务器而不是像我们这里使用nginx,此certbot的–standalone 模式会自动启用服务器的 443 端口,来验证域名的归属。如果我们本生有服务占用了443和80,则必须先关掉。推荐使用–webroot方式,执行正确部分响应如下:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/www.anteoy.site/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/www.anteoy.site/privkey.pem Your cert will expire on 2018-04-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le[/code]
利用nginx部署https
在/etc/nginx/conf.d/下增加两个server配置文件,以*.conf命名分别配置两个serverserver { listen 443 ssl; server_name www.anteoy.site; ssl_certificate /etc/letsencrypt/live/www.anteoy.site/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.anteoy.site/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/www.anteoy.site/chain.pem; root /usr/share/nginx/html; location / { proxy_pass http://web服务的ip或者域名:8080/; } }server { listen 80; server_name www.anteoy.site; return 301 https://$host$request_uri; }
listen 80端口主要是为了在用户访问网站的时候未输入https,使用http的方式访问80,则自动跳转请求https的访问地址
重启nginx:nginx -s reload
配置crontab
由于let’s encrypt 生成的CA证书有效时间只有3个月,所以在CA证书到期以后我们需要手动进行更新,重新获取,或者使用Linux的crontab定时任务定时获取
首先完成步骤3后检测能否正常更新证书:certbot renew --dry-run
然后编辑自定义脚本regen.sh:#!/bin/bash # 续签 /usr/bin/certbot renew --quiet # 重启 nginx /usr/sbin/nginx -s reload
查看任务列表crontab -l
增加croncrontab -e
注意如果是首次添加则会选择编辑器,按找自己习惯选择就行,我这里选择的是vi
在文件末尾追加:00 03 1 * * /youpath/regen.sh
执行此脚本测试是否正常:chmod +x regen.sh ./regin.sh
重启crontabsudo systemctl restart cron参考
https://certbot.eff.org/
https://blog.guorenxi.com/43.html
https://segmentfault.com/a/1190000005797776
https://linuxstory.org/deploy-lets-encrypt-ssl-certificate-with-certbot/
相关文章推荐
- 使用 Let's Encrypt(Certbot) 配置 HTTPS
- 利用Certbot工具快速给网站部署Let's Encrypt免费SSL证书
- 利用Certbot工具快速给网站部署Let's Encrypt免费SSL证书
- 使用 Cerbot 部署 Let's Encrypt免费证书 简单 升级 http 到 https 申请单域名ssl证书
- 使用Go和Let's Encrypt证书部署HTTPS
- Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS
- 网站http改https Let’s Encrypt 安装 续期教程 免费ssl证书Let’s Encrypt使用教程Certbot
- IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)
- certbot自动在ubuntu16.04的nginx上部署let's encrypt免费ssl证书
- 配置新版 Let’s Encrypt (Certbot) 证书
- 使用Let’s Encrypt将WordPress改造为Https访问
- 使用 Let's Encrypt 保护你的网站
- 用 Certbot 一键升级你的网站为 Https
- 使用Let`s encrypt 免费的https 证书
- 免费SSL证书Let's Encrypt(certbot)安装使用教程
- 借助 Let’s Encrypt 免费 https 证书搭建 HTTPS 网站
- 使用 Let's Encrypt 和 Nginx 从同一服务器托管多个 HTTPS 域名
- OPS: Https配置 Let's Encrypt SSl 使用
- centos7部署Openresty,使用certbot-nginx进行https支持