nginx使用acme.sh腳本配置letsencrypt ssl證書


先說下背景:certbot依賴太舊

2020年之后Python2 安全不支持 不能再用了,

網站用的是letsencrypt免費證書,letsencrypt官方推薦acme客戶端是Certbot

 

 

但是Certbot 在nginx on centos7上用的是 python2-certbot-nginx ,基於Python2的,(看了下centos8是使用的python3的,但是更新到8代價有點大)

 

 

所以cerbot也用不得了

 解決方案:acme.sh

在官方客戶端列表里發現了一個用shell實現的:acme.sh 現在(2020年09月09日)有19K star

直接使用DNS方式生成泛域名證書,這里使用acme.sh配置let'sencrypt網址證書,過程如下(請以官網文檔為主)

1安裝 參照官網 安裝

2配置dns 找到自動的域名供應商添加dnsapi key secret

3生成證書把證書安裝到指定位置

4配置nginx 只需要在原來的80 server的基礎上更改443端口並添加證書配置就可以了,見下方紅色代碼部分

    server {
        listen 443;
        server_name localhost;

 ssl on; index index.html index.htm; ssl_certificate /上一步你安裝的位置/fullchain.cer;
        ssl_certificate_key  /上一步你安裝的位置/clsn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;

        root html;
        location / {
            root html;
            index index.html index.htm;
        }
    }

5 重啟nginx  :    service nginx force-reload, 不是 service nginx reload, 據測試, reload 並不會重新加載證書, 所以用的 force-reload

done

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM