溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用acme.sh進行ssl申請和自動續(xù)約?

發(fā)布時間:2020-05-30 00:33:39 來源:億速云 閱讀:365 作者:鴿子 欄目:系統(tǒng)運維

本文以demo.example.com為例,詳細介紹了使用acme.sh進行ssl申請和自動續(xù)約的方法

安裝

只需要用任意用戶執(zhí)行

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

acme.sh 會安裝到 ~/.acme.sh/目錄下,并創(chuàng)建新的自動計劃(cronjob)在凌晨0點檢查所有證書

生成證書的方式主要有三種

  1. 網(wǎng)站文件方式,適合于已經(jīng)部署好apache或是nginx服務器的情況
  2. 臨時監(jiān)聽80端口方式,適合于沒有部署好服務的服務器
  3. 手動配置DNS,需要有手動配置DNS的權限,適合沒有服務器或是不想更改服務器的情況

1.文件認證

acme.sh  --issue  -d <域名>  --webroot  <網(wǎng)站根目錄>
acme.sh  --issue  -d demo.example.com  --webroot /home/wwwroot/demo.example.com/

2.暫時監(jiān)聽80端口

yum install socat
acme.sh  --issue -d demo.example.com --standalone

3. DNS方式

手動方式

首先獲得認證需要的解析記錄

acme.sh --issue --dns -d demo.example.com

然后在DNS服務商中添加記錄
最后重新生成證書

acme.sh --renew -d demo.example.com

使用這種方式 acme.sh 將無法自動更新證書,每次都需要手動再次重新解析驗證域名所有權。

自動方式

dns 方式的真正強大之處在于可以使用域名解析商提供的 api 自動添加 txt 記錄完成驗證

首先需要在云上申請有DNS配置權限的賬號密碼

騰訊云

參考:
操作方法

在dnspod官網(wǎng)上申請
https://www.dnspod.cn/Login?r=/console

然后登錄遠程服務器

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
acme.sh --issue --dns dns_dp -d demo.example.com

阿里云

參考:
操作方法

在阿里云官網(wǎng)登錄添加擁有DNS配置權限的子賬戶 https://ram.console.aliyun.com/overview
然后登錄遠程服務器

export Ali_Key="AccessKeyId"
export Ali_Secret="AccessKeySecret"
acme.sh --issue --dns dns_ali -d demo.example.com

證書的安裝

默認生成的證書都放在安裝目錄下: ~/.acme.sh/

需要將證書“拷貝”到自定義位置,方便配置,這里的復制需要用acme.sh的自帶工具用于日后自動更新

acme.sh  --installcert  -d  demo.example.com   \
        --key-file   /usr/local/nginx/ssl/demo_example_com.key \
        --fullchain-file /usr/local/nginx/ssl/demo_example_com.cer \
        --reloadcmd  "/usr/local/nginx/sbin/nginx -s reload"

apache服務器的配置

暫無

nginx服務器的配置

nginx 設置類似如下

  server {
        listen 443 ssl;
        ssl on;
        ssl_certificate  /usr/local/nginx/ssl/demo_example_com.cer; # 這里指向證書安裝的位置
        ssl_certificate_key  /usr/local/nginx/ssl/demo_example_com.key;
     }

讓你的SSL更安全

參考:https://mikemiao111.com/nginx%E5%A2%9E%E5%BC%BAhttps%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE/

nginx默認采用1024位的加密算法,如果需要的話可以使用2048位的代替,這樣可以讓加密更安全

首先生成 zjk_zoollcar_top.pem 文件到指定目錄

openssl dhparam -out /usr/local/nginx/ssl/demo_example_com.pem 2048

然后在nginx配置文件中設置

  server {
        listen 443 ssl;
        ssl on;
        ssl_certificate  /usr/local/nginx/ssl/demo_example_com.cer;
        ssl_certificate_key  /usr/local/nginx/ssl/demo_example_com.key;
        ssl_dhparam  /usr/local/nginx/ssl/demo_example_com.pem; #新增
     }

可以用下面的網(wǎng)站測試SSL安全性

https://www.ssllabs.com/ssltest/

更新 acme.sh

目前由于 acme 協(xié)議和 letsencrypt CA 都在頻繁的更新, 因此 acme.sh 也經(jīng)常更新以保持同步.

升級 acme.sh 到最新版 :

acme.sh --upgrade

如果不想手動升級, 可以開啟自動升級:

acme.sh  --upgrade  --auto-upgrade

之后, acme.sh 就會自動保持更新了.

你也可以隨時關閉自動更新:

acme.sh --upgrade  --auto-upgrade  0

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI