下载acme.sh
# curl https://get.acme.sh | sh
安装时提下列信息, 可以不用管, 也可以安装 socat ( # yum -y install socat )
添加别名方便执行
# alias acme.sh=~/.acme.sh/acme.sh
执行签发泛域名证书
acme.sh --issue -d brando.org.cn -d '*.brando.org.cn' --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --keylength ec-384
执行完成后, 会提示. 去域名解析处配置TXT解析. 把Domain, 和 TXT value 配置进去.
此配置图片值不对应. 自己使用的时候需要配置正确.
配置完成后检查是否配置正确(可以省略)
安装 dig 命令组建
# yum install bind-utils
查看TXT值是否配置正确
# dig _acme-challenge.brando.org.cn txt
重新执行生成证书.
# acme.sh --renew --ecc -d brando.org.cn -d '*.brando.org.cn' --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --keylength ec-384
生成成功图片
生成完成后需再次生成
# acme.sh --renew --ecc --force -d brando.org.cn -d '*.brando.org.cn' --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --keylength ec-384
复制证书文件
# cd /root/.acme.sh/brando.org.cn_ecc/
fullchain.cer 是证书
brando.org.cn.key 是私钥
Nginx配置HTTPS证书
server {
listen 443 ssl http2;
server_name www.brando.org.cn;
ssl on;
ssl_certificate /ssl/brando.org.cn.cer; # SSL 证书文件( 对应fullchain.cer文件, 只是改了个名字 )
ssl_certificate_key /ssl/brando.org.cn.key; # SSL 私钥文件
#ssl优化配置.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_stapling on;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384: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: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_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 10m;
location / {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 1800s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}
}