Let’s Encrypt 通配符證書,泛域名證書申請配置


首先你可以查看下官方提供的支持申請通配符證書的客戶端列表:https://letsencrypt.org/docs/client-options/

參考鏈接:https://github.com/Neilpang/acme.sh/wiki/dnsapi

這些客戶端支持最新的ACME v2接口,而這個接口目前已經正式支持申請通配符證書啦。

這里,我使用acme.shhttps://github.com/Neilpang/acme.sh)這個Client,它是直接在bash下運行,使用非常簡單,而且支持大多數DNS服務器的API自動驗證!

1、安裝acme.sh

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

一句話完成安裝,安裝過程分為:

1)復制acme.sh的程序文件到當前用戶主目錄,比如root用戶的:~/.acmh.sh目錄下

2)創建一個alias:acme.sh=~/.acme.sh/acme.sh

 安裝過程中如果報錯:

出現了紅色的提醒:
It is recommended to install socat first
We use socat for standalone server if you use standalone mode.
If you don't use standalone mode, just ignore this warning.
大概意思就是叫我最好安裝 socat

yum install epel-release -y
yum install socat -y
curl https://get.acme.sh | sh

安裝成功后使用 acme.sh --version 查看版本

2、裝完后,就可以開始申請證書了。

阿里雲的DNS

為了能完成自動驗證,需要在acme.sh的配置中寫入阿里雲的密鑰信息:

申請地址:https://ak-console.aliyun.com/#/accesskey

申請完畢之后,我們需要復制Access Key ID、Access Key Secret,等會需要用到的

export Ali_Key="對應Access Key ID"
export Ali_Secret="對應Access Key Secret"

先在本地編輯好對應的信息,然后直接貼到SSH回車執行,會創建臨時變量。(第三點方法命令執行后更改了 ~/.acme.sh/account.conf 文件的配置)

騰訊雲DNS

域名是托管在了騰訊雲上面的,那么你域名的解析服務商就是DNSPod。 你可以用騰訊雲的賬號或者騰訊雲綁定的QQ,微信登錄dsnpod的后台。DNSPod並入騰訊雲,dnspod和騰訊雲是一家

登錄 dnspod后台。如果域名是在騰訊雲上注冊的,那么可以用騰訊雲的賬號密碼或者騰訊雲綁定的QQ、微信登錄。

點擊左側的安全設置,『創建API Token』。

創建成功后,千萬記着把ID和Token記錄下來,因為窗口一旦關閉信息就無法找回了。

export DP_Id="xxx"
export DP_Key="xxxxxxx"

先在本地編輯好對應的信息,然后直接貼到SSH回車執行,會創建臨時變量。(第三點方法命令執行后更改了 ~/.acme.sh/account.conf 文件的配置)

3、最后,重點來了,通配符證書申請命令(以我自己的域名為例):

阿里雲使用以下命令:

~/.acme.sh/acme.sh --issue -d test.cn -d *.test.cn --dns dns_ali

騰訊雲使用以下命令:

acme.sh --issue --dns dns_dp -d test.cn-d *.test.cn

注意,這里–dns參數使用的是dns_ali,告訴acme.sh使用阿里雲的DNS接口去自動驗證。(好處:全程無干預,不需要暫停web服務器!)

 

4、查看生成的證書文件,證書默認生成在:~/.acme.sh/test.cn下:

 

5、證書的安裝

注意, 默認生成的證書都放在安裝目錄下: ~/.acme.sh/, 請不要直接使用此目錄下的文件,
例如: 不要直接讓 nginx/apache 的配置文件使用這下面的文件.
這里面的文件都是內部使用, 而且目錄結構可能會變化.

正確的使用方法是使用 --installcert 命令,並指定目標位置, 然后證書文件會被copy到相應的位置,

默認情況下,證書將每60天更新一次(可配置)。更新證書后,將通過以下命令自動重新加載Apache / Nginx服務:service apache2 force-reloadservice nginx force-reload

請注意:reloadcmd非常重要。證書可以自動續訂,但是,如果沒有正確的“reloadcmd”,證書可能無法刷新到您的服務器(如nginx或apache),那么您的網站將無法在60天內顯示續訂證書。

阿里雲使用以下命令:

# 創建放置證書的文件夾
mkdir -p /usr/local/nginx/ssl_cert/test.cn

# 前面證書生成以后,,需要把證書 copy 到真正需要用它的地方。
acme.sh --install-cert -d test.cn -d *.test.cn \
--key-file /usr/local/nginx/ssl_cert/test.cn/test.cn.key \
--fullchain-file /usr/local/nginx/ssl_cert/test.cn/test.cn.cer \
--reloadcmd      "service nginx force-reload"

 騰訊雲使用以下命令:

# 創建放置證書的文件夾
mkdir -p /usr/local/nginx/ssl_cert/test.cn
# 前面證書生成以后,,需要把證書 copy 到真正需要用它的地方。 acme.sh --install-cert -d test.cn --key-file /usr/local/nginx/ssl_cert/test.cn/test.cn.key --fullchain-file /usr/local/nginx/ssl_cert/test.cn/test.cn.cer --reloadcmd "/usr/local/nginx/sbin/nginx -s reload"

 

 

6.Nginx 配置Http和Https共存

listen 80; #如果硬性要求全部走https協議,這一行去除
listen 443 ssl http2; #如果硬性要求全部走https協議,這里去除ssl
server_name chandao.test.cn;

#ssl on; #如果硬性要求全部走https協議,這里開啟ssl on
ssl_certificate /usr/local/nginx/ssl_cert/test.cn/test.cn.cer;
ssl_certificate_key /usr/local/nginx/ssl_cert/test.cn/test.cn.key;

#ssl性能調優
#nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
#使用ssl_session_cache優化https下Nginx的性能
ssl_session_cache builtin:1000 shared:SSL:10m;
#OCSP Stapling 開啟。OCSP是用於在線查詢證書吊銷情況的服務,使用OCSP Stapling能將證書有效狀態的信息緩存到服務器,提高 TLS 握手速度
ssl_stapling on;
#OCSP Stapling 驗證開啟
ssl_stapling_verify on;

 使用nginx -t 查看是否出錯,然后重啟nginx 

nginx -t
service nginx reload

 

7、查看證書列表

acme.sh --list
8、刪除證書【創建https失敗,可刪除證書重試】

acme.sh remove Main_Domain(證書的主域名,上述證書列表中可看見)

轉載於:https://blog.csdn.net/weixin_30911809/article/details/96166225


免責聲明!

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



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