acme申请证书

安装acme工具

curl https://get.acme.sh | sh

source ~/.bashrc
acme.sh --register-account -m EMAIL ADDRESS

更换根证书:

acme.sh --set-default-ca  --server zerossl

申请证书

HTTP

acme.sh  --issue -d {DOMAIN}   --webroot  /data/wwwroot/{DOMAIN}

DNS方式验证

acme.sh --issue --dns dns_cf -d  {DOMAIN}
acme.sh --issue --dns dns_he  -d {DOMAIn}  --keylength ec-256
acme.sh --issue --dns dns_dp  -d {DOMAIN}
acme.sh --issue --dns dns_gd -d {DOMAIN}

安装证书

copy证书并指定nginx reload命令

acme.sh  --installcert  -d  {DOMAIN} \
        --key-file   /usr/local/nginx/conf/ssl/{KEY}  \
        --fullchain-file /usr/local/nginx/conf/ssl/{CER} \
        --reloadcmd  "/usr/local/nginx/sbin/nginx -s reload"

生成 dhparam.pem 文件

openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048

配置nginx

server {
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;
    server_name  {DOMAIN}

    ssl_certificate /usr/local/nginx/conf/ssl/{CER};
    ssl_certificate_key /usr/local/nginx/conf/ssl/{KEY}
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
    ...
}

自动续约

acme安装的时候就会自动添加crond计划任务来处理续约,当然也是可以手动来renew的。

acme添加的crond

[root@VM-4-16-centos acme]# crontab -l
27 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

手动renew

acme.sh --cron -f

设置acme自动更新

acme.sh  --upgrade  --auto-upgrade