跳转至

Docker 运行 acme.sh 安装配置泛域名证书

约 157 个字 31 行代码 预计阅读时间 1 分钟

来源:docker运行acme.sh 安装配置泛域名证书 - 一个人的孤独自白 - 博客园

以阿里云为例:

运行镜像

1
2
3
4
5
6
7
docker run  -itd  \
    -v "/root/acme.sh":/acme.sh  \
    -e Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" \
    -e Ali_Secret="jlsdflanljkljlfdsaklkjflsa" \
    --net=host \
    --name=acme.sh \
    neilpang/acme.sh daemon

签发证书

docker exec acme.sh --issue --dns dns_ali -d 4ading.com -d a4ding.com -d *.4ading.com -d *.a4ding.com

泛域名放在后面。

配置nginx

listen 80; #如果硬性要求全部走https协议,这一行去除
listen 443 ssl http2; #如果硬性要求全部走https协议,这里去除ssl
server_name 4ading.com;

#ssl on; #如果硬性要求全部走https协议,这里开启ssl on
# 为什么这么改,参见代码下方链接
# ssl_certificate /root/acme.sh/aa.com/4ading.com.cer;
ssl_certificate /root/acme.sh/aa.com/fullchain.cer;
ssl_certificate_key /root/acme.sh/aa.com/4ading.com.key;

#ssl性能调优
#nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
#使用ssl_session_cache优化https下Nginx的性能
ssl_session_cache builtin:1000 shared:SSL:10m;
#OCSP Stapling 开启。OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度
#ssl_stapling on;
#OCSP Stapling 验证开启
#ssl_stapling_verify on;

cer 推荐使用 fullchain.cer,以兼容一些应用,防止出现证书错误的情况。比如为知笔记,就不支持用默认的 cer 文件进行证书认证。

证书更新后需重启 nginx。

设置 crontab 任务自动续签(可选)

crontab -e

添加如下内容,保存:

10 0 * * * docker exec acme.sh --cron   # acme.sh为容器名,每天0点10分执行