Let’s Encrypt SSL配置https

(各项技术在更新迭代,本文已失效!)

感谢 孙傲 同学的帮助 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;
#强制将http重定向到https
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
nginx -s reload

自动续期 以下方式未验证,但是已配置

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

添加定时任务

1
2

crontab -e

配置为(每天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


Let’s Encrypt SSL配置https
http://example.com/2018-01-10 lets-encrypt-ssl配置https/
作者
csorz
发布于
2018年1月10日
许可协议