acme 快速生成證書且部署nginx (文件驗證)


acme 有兩種方式驗證域名發布ssl證書,dns和文件校驗

本文使用比較方便的文件驗證方式,需要nginx 配置了servername 或者其他方式,端口需要開放全球80,會在默認網頁路徑生成txt文件,校驗網址的url,例http://baidu.com/ssl/qwertyy

更多信息可以參考
https://github.com/acmesh-official/acme.sh
https://github.com/acmesh-official/acme.sh/wiki/說明

三種方式安裝 acme腳本

git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install
# 或者
curl https://get.acme.sh | sh
# 或者
wget -O -  https://get.acme.sh | sh

nginx conf模板

server {
        listen  80 default_server;
        root /usr/local/nginx/html;
        location / {
                return 404;
        }
        location ^~ /.well-known/acme-challenge/ {
                default_type "text/plain";

        }

        location = /.well-known/acme-challenge/ {
                return 404;
        }

快捷生成腳本和nginx配置文件的腳本,
需要先配置好demo.com.conf.b 模板,根據實際需求來配置

#!/bin/bash
# 腳本可命名為 update_ssl.sh
if [ -z "$1" ];then
            exit
fi
# acme.sh 可能需要配置絕對路徑
acme.sh --issue -d $1 -d www.$1 -w /usr/local/nginx/html
sed "s/demo.com/$1/g" /usr/local/nginx/conf/conf.d/demo.com.conf.b > /usr/local/nginx/conf/conf.d/$1.conf
/usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload

如果你有大量域名需要配置,可以寫for循環 去生成配置

for i in `cat domain.txt`
do
update_ssl.sh $i
done

nginx證書配置

server {
        listen 443 ssl;
        server_name baidu.com www.baidu.com;
# 使用 baidu.com.cer 部分瀏覽器會報錯,應使用 fullchain.cer 完整鏈路ssl證書
        ssl_certificate fullchain.cer;
        ssl_certificate_key baidu.com.key;
        ssl_prefer_server_ciphers on;
        ssl_session_tickets off;

        add_header Strict-Transport-Security "max-age=31536000";
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5;
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_stapling on;
        ssl_stapling_verify on;
        root html;

        location / {
                index index.html;
        }
}


免責聲明!

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



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