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....