Let s Encrypt 證書申請及配置(二)

2021-10-07 14:22:53 字數 3068 閱讀 1250

let's encrypt —— 是乙個由非營利性組織 網際網路安全研究小組(isrg)提供的免費、自動化和開放的證書頒發機構(ca),簡單的說,就是為**提供免費的 ssl/tls 證書。

以 root 使用者為例

curl  | sh

安裝過程:

home目錄下生成.acme.sh資料夾,檢視資料夾內容:ls ~/.acme.sh/

自動新增 bash alias:

# ~/.bashrc 新增:

. "/root/.acme.sh/acme.sh.env"

# acme.sh.env 內容:

# alias acme.sh="/root/.acme.sh/acme.sh"

自動新增定時任務(時間隨機):

# 每天凌晨檢查證書的有效期,如有需要,自動續簽。

30 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

# 檢視幫助

acme.sh -h

# 檢視列表

acme.sh --list

# 解除安裝 acme.sh

# 編輯 ~/.bashrc,刪除 acme.sh alias

acme.sh --uninstall

自動更新:acme.sh --upgrade --auto-upgrade

手動更新:acme.sh --upgrade

關閉更新:acme.sh --upgrade --auto-upgrade 0

驗證網域名稱所有權驗證方式:http 和 dns

dns:在網域名稱上新增一條 txt 解析記錄

acme.sh 會自動生成驗證檔案,並放到站點的根目錄,然後自動完成驗證,最後自動刪除檔案。

nginx:自動從配置中獲取站點的根目錄

acme.sh --issue -d mydomain.com --nginx

—— 站點如未備案,80 埠處於禁用狀態,acme.sh 無法使用 http 驗證網域名稱所有權。

優勢:不需要伺服器與公網 ip,只要配置 dns 解析即可。

不足:必須配置 automatic dns api 才可以自動續簽。

# 

# 注:dns 不支援自動續簽

# 步驟:

# 1. 生成相應的解析記錄

# 2. 網域名稱解析中新增生成的 txt 記錄

# 3. 等待解析其生效

acme.sh --issue --dns -d mydomain.com --yes-i-know-dns-manual-mode-enough-go-ahead-please

# 查詢網域名稱 txt 記錄

nslookup -type=txt _acme-challenge.mydomain.com

# 解析生效後,重新生成證書(注:確實是 renew)

acme.sh --renew -d mydomain.com --yes-i-know-dns-manual-mode-enough-go-ahead-please

dns api(推薦)

根據網域名稱服務商,選擇對應的 dns api。

阿里雲:控制台

建立 accesskey

# 獲取到 key 和 secret 後,設定環境變數

export ali_key="123"

export ali_secret="abc"

# 生產證書

acme.sh --issue --dns dns_ali -d mydomain.com -d www.mydomain.com

建立 api token

# 獲取到 id 和 key 後,設定環境變數

export dp_id="123"

export dp_key="abc"

# 生產證書

acme.sh --issue --dns dns_dp -d mydomain.com -d www.mydomain.com

wildcard 證書,目前只支援dns-01驗證方式。

# 阿里 dns api

acme.sh --issue --dns dns_ali -d mydomain.com -d *.mydomain.com

生成的證書都在home目錄下:~/.acme.sh/

使用--install-cert命令

acme.sh --install-cert -d mydomain.com \

--key-file /websvr/ssl/mydomain.key \

--fullchain-file /websvr/ssl/fullchain.cer \

--reloadcmd "docker exec -t nginx nginx -s reload"

server 

server

重啟 nginx 服務:

docker exec -t nginx nginx -s reload

定時任務會自動更新

強制續簽證書:acme.sh --renew -d mydomain.com --force

申請Let s Encrypt的證書

允許epel倉庫 yum y install yum utils yum config manager enable rhui region rhel server extras rhui region rhel server optional 安裝certbot sudo yum install ...

Let s Encrypt 泛網域名稱證書申請

github 通過acme申請let s encrypt證書支援的網域名稱dns服務商有以下這些 國內使用者較多的 cloudxns dnspod aliyun 阿里雲 cloudflare linode he digitalocean namesilo aws namecom freedns go...

let s encrypt免費證書申請及使用

let s encrypt是國外一家提供免費ssl網域名稱證書的機構,申請過程非常簡單,但是免費期只有90天,不過到期可以免費續簽。git clone 註冊 cd letsencrypt letsencrypt auto certonly standalone email 554599744 qq....