acme.sh 申请 https 证书实践


1. 安装 acme.sh

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

安装完成后会生成 ~/.acme.sh/ 目录
并配置读取 acme.sh.env 中的命令 . "~/.acme.sh/acme.sh.env"
我们可以使用 . ~/.bashrcsource ~/.bashrc 让配置立即生效,也可以重新打开一个终端登录服务器。
此时 acme.sh 命令就可以使用了

2. 生成证书

acme.sh --issue -d yourdomain.com --nginx

更多生成方式参考 生成证书

3. copy/安装 证书

acme.sh  --installcert  -d  <domain>.com   \
        --key-file   /etc/nginx/ssl/<domain>.key \
        --fullchain-file /etc/nginx/ssl/<domain>.cer \
        --reloadcmd  "service nginx force-reload"

4. 创建定时任务,每日检查更新

Cron 示例

0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null

5. 更新 acme.sh

acme.sh --upgrade --auto-upgrade

6. http 跳转 https

http redirect to https

    if ($scheme = http) {
        return 301 https://$host$request_uri;
    }

7. nginx https 配置

    listen 443 ssl;

    ssl_certificate /etc/nginx/ssl/<domain>.cer;
    ssl_certificate_key /etc/nginx/ssl/<domain>.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

    if ($scheme = http) {
        return 301 https://$host$request_uri;
    }

8. 验证 ssl 配置安全性

https://www.seoptimer.com/your-domain.com

如果看到 Serurity 是 A+ 就足够了,其他选项可以根据个人需要按照提示进行调整。


文章作者: 牟勇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牟勇 !
  目录