Let's Encrypt 的免费通配符证书 + Nginx配置

990 阅读1分钟

1,执行下面命令

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

如果报下面的错误: 则在hosts中添加下面配置,

140.82.114.4 github.com
185.199.108.153 github.github.io
199.232.69.194 github.global.ssl.fastly.net
199.232.28.133 raw.githubusercontent.com

然后重新执行命令: 查看 ~/.acme.sh/ 目录下内容:

2,找到阿里云的DNS解析

github.com/acmesh-offi…

image.png 然后生成一个Key和Secret

image.png 然后使用 阿里云的域名生成:

-- 生成 泛域名证书,所有二级域名都能使用
acme.sh --issue --dns dns_ali -d example.com -d '*.example.com'

image.png 执行以下命令:

acme.sh --register-account -m 1023xxxx@qq.com

image.png

最后成功了:

image.png

然后把证书安装到其他目录:

./acme.sh  --installcert -d mydomain.com  -d *.mydomain.com \
        --cert-file   /etc/letsencrypt/zmbd/mydomain.com.cer  \
        --key-file   /etc/letsencrypt/zmbd/mydomain.com.key  \
        --ca-file       /etc/letsencrypt/zmbd/ca.cer   \
        --fullchain-file /etc/letsencrypt/zmbd/fullchain.cer  \
        --reloadcmd '/www/server/nginx/sbin/nginx  -c /www/server/nginx/conf/nginx.conf'

3,配置Nginx

/usr/local/nginx/ssl 是存放https证书的文件。 然后配置nginx.conf

server {
       listen 80;
       server_name mydomain.com www.mydomain.com;
       return 301 https://www.mydomain.com$request_uri;
    }
    server {
        listen 443 ssl;
        server_name www.mydomain.com;
        ssl_certificate /etc/letsencrypt/zmbd/fullchain.cer; 
        ssl_certificate_key /etc/letsencrypt/zmbd/mydomain.com.key;
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_timeout        5m;
        add_header Strict-Transport-Security max-age=60;
        
        location / {
                root   /usr/local/program/ning;
                try_files $uri $uri/ /index.html;
        }
    }

4,更新

image.png