首页 专题 文章 代码 归档

[SSL]使用acme.sh获取let's的ssl

1. 前言

当时测试好了的时候,忘记写文章了,现在是补的,我也不能再来一遍,只能网上找点资料,然后凭记忆写一下,当个备忘

2. 步骤

2.1. 安装acme.sh

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

安装完毕后,刷新环境变量,然后输入“ acme.sh ”,看看会不会报错,不会的话就没有问题

source ~/.bash_profile ~/.bashrc # 刷新环境变量

2.2. 域名解析

需要先在阿里云新建一个授权用户,

然后该用户有权限增删改查dns解析

然后获取到key和secret,替换下面的参数

# 替换成从阿里云获取的 API 参数
export Ali_Key="666"
export Ali_Secret="666"
# 换成自己的域名
acme.sh --issue --dns dns_ali -d ujuji.com -d *.ujuji.com

这里我们是增加了泛解析“*.ujuji.com”,但是使用泛解析,需要有一个根,也即前面的“-d ujuji.com”

这样我们就获取到了证书(如果前面步骤没错的话

2.3. Nginx配置

这里附上Nginx的参考配置:

server {
    listen       443 ssl http2;
    server_name  www.blestgirl.top;

     ssl_certificate /etc/nginx/ssl/blestgirl.top.cer;
     ssl_certificate_key /etc/nginx/ssl/blestgirl.top.key;
     ssl_session_timeout 5m;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
     ssl_prefer_server_ciphers on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location ~ \.php$ {
        root           /var/www/html;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

另外,需要说的是,如果你使用的是宝塔的话,那么:

生成的fullchain.cer对应宝塔需要的证书(PEM格式)

生成的xx.xx.key对应宝塔需要的密钥(KEY)

2.4. 自动更新

由于let's 的证书协议极易更新,导致acme工具不能正常使用,而导致续签失败,所以可以自动更新:

acme.sh --upgrade --auto-upgrade
此文阅读完毕,您可以:分享
二维码图片 扫描关注我们哟