(各项技术在更新迭代,本文已失效!)
感谢 孙傲 同学的帮助 sunao.cc Git 安装 letsencrypt 示例安装到/opt目录下
1 2 3
| git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt cd /opt/letsencrypt
|
sun_ao@foxmail.com替换成自己的邮箱 sunao.cc、www.sunao.cc、blog.sunao.cc替换成自己的域名,需要配置多少个就设置多少个(别忘了域名前加-d,注意前后有空格)
1 2 3
| 暂时无法使用 ./certbot-auto certonly --email sun_ao@foxmail.com -d sunao.cc -d www.sunao.cc -d blog.sunao.cc
|
1 2 3
| 更高效的方式 ./certbot-auto --authenticator standalone --installer nginx -d sunao.cc --pre-hook "service nginx stop" --post-hook "service nginx stop"
|
然后程序会自动噼里啪啦安装一堆需要支撑的工具,尽量全部同意 Nginx 配置 直接贴出配置,其中sunao.cc的地方全部根据你的实际情况去配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| server { listen 80; server_name sunao.cc *.sunao.cc; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443 ssl; ssl on; ssl_certificate /etc/letsencrypt/live/sunao.cc/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/sunao.cc/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; server_name sunao.cc *.sunao.cc; location / { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:4000; } }
|
重启nginx
自动续期 以下方式未验证,但是已配置
1
| ./certbot-auto renew --force-renewal --pre-hook "/etc/init.d/nginx stop" --post-hook "/etc/init.d/nginx start"
|
以上脚本直接执行,正常情况下不会报错 可以创建脚本le-renew.sh
1 2
| vi /opt/letsencrypt/le-renew.sh
|
内容为
1 2 3 4
| #!/bin/sh cd /opt/letsencrypt git pull ./certbot-auto renew --force-renewal --pre-hook "/etc/init.d/nginx stop" --post-hook "/etc/init.d/nginx start"
|
添加可执行权限
1
| chmod +x /opt/letsencrypt/le-renew.sh
|
添加定时任务
配置为(每天0点5分执行)
1
| 0 5 * * * /opt/letsencrypt/le-renew.sh > /dev/null 2>&1
|
至此所有工作配置完毕。 参考文档 1.在 CentOS 7 上为网站安装使用 Let’s Encrypt SSL 证书 2.免费HTTPS证书Let’s Encrypt安装教程 3.Nginx 下 https 配置与 nginx强制使用https访问的4种方案 4.Let’s Encrypt 给网站加 HTTPS 完全指南 遇到的问题 0.腾讯云默认关闭443端口,在安全规则中打开 1.博客是wordpress,将apache默认端口改为3001,nginx将blog.cosrz.com指向127.0.0.1:3001 etc/httpd/conf/httpd.conf Listen 80 改为 3001
2.apache ssl与nginx ssl冲突,故注释掉apache的ssl.conf etc/httpd/ssl.conf_bak