记录acme.sh自动申请ssl以及安装到nginx的脚本

设置DNS_api需要的key

放到.bashrc或者其他环境变量中

1
2
export CF_Token="xxx"
export CF_Account_ID="xxxx"

安装

1
curl https://get.acme.sh | sh -s email=my@example.com

重新连接ssh后

1
acme.sh --issue -d '*.mydomain.com' --dns dns_cf

安装证书到指定目录

1
2
3
4
5
6
mkdir -p /etc/nginx/ssl

acme.sh --install-cert -d '*.mydomain.com' \
--key-file       /etc/nginx/ssl/key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     "systemctl force-reload nginx"

配置nginx

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
listen 443 ssl;
http2 on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256';

ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000" always;
Licensed under CC BY-NC-SA 4.0
记录平时瞎折腾遇到的各种问题, 方便查找
使用 Hugo 构建
主题 StackJimmy 设计