日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

acme云服务器生成证书_使用 acme.sh 申请 SSL 证书并且定期自动更新

發(fā)布時間:2024/9/19 编程问答 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 acme云服务器生成证书_使用 acme.sh 申请 SSL 证书并且定期自动更新 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在我們的實際項目生產(chǎn)過程中往往需要為部署的服務和域名配置 SSL 證書,可以采用的方法有很多種,例如可以申請阿里云的免費 SSL 證書,或者也可以使用 CloudFlare 的 SSL 服務。本文介紹了一種使用 acme.sh 腳本工具來申請 Let’s Encrypt! 免費的 SSL 證書,并能夠在證書快過期時自動重新申請新證書。這樣減輕了運維的負擔,不需要再去記錄證書的過期時間,也不需要再手動申請新證書和手動進行更新了。

一、安裝 acme.sh 腳本

acme.sh 的腳本安裝非常簡單,只需要在終端中執(zhí)行如下命令:

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

(如果系統(tǒng)未安裝 curl 工具,請先進行安裝)

二、驗證域名并生成證書

acme.sh 驗證域名的方式一般有兩種方式:HTTP 驗證和 DNS 驗證。

HTTP 驗證的方式是需要往域名特定的 url 下面放置一個 txt 文件,用于驗證你確實擁有該域名。

本文推薦的方式是使用 DNS 驗證的方式,使用這種方式可以通過使用域名解析商提供的 API 自動添加 DNS 的 txt 記錄來完成驗證,是最簡單、最快捷的方式。使用這種方式無需驗證 IP,可以方便地實現(xiàn) SSL 證書的自動申請和續(xù)簽。

acme.sh 目前支持阿里云,CloudFlare,DNSpod,Cloudxns,Godaddy 以及 ovh 等數(shù)十種解析商的 API 自動集成,本文以阿里云和 CloudFlare 為例來介紹如何來驗證域名。

1. 阿里云(Aliyun)

如果你的域名解析商是阿里云,那么你可以采用這種方式來驗證域名。

首先,你需要為阿里云賬號創(chuàng)建一個子賬號來為更新 DNS 解析記錄的操作申請一個 API Key,訪問阿里云 RAM 訪問控制,創(chuàng)建一個用戶。

我們可以創(chuàng)建一個 acme 用戶:

在分配權(quán)限時,分配 AliyunDNSFullAccess 的權(quán)限:

之后會分配 Key 和 Secret,這部分數(shù)據(jù)需要妥善保存。

可以將 Key 和 Secret 放到終端的環(huán)境變量中:

1vi ~/.bashrc

把 Key 和 Secret 添加到文件末尾:

1

2export Ali_Key="xxxxxx"

export Ali_Secret="xxxxxx"

使環(huán)境變量生效:

1source ~/.bashrc

下面執(zhí)行如下命令來驗證域名(以 example.com 域名為例)并生成證書:

1acme.sh --issue --dns dns_ali -d example.com -d *.example.com

執(zhí)行后的結(jié)果:

1

2

3

4[Fri Oct 23 13:21:09 CST 2020] Your cert is in /root/.acme.sh/ example.com/ example.com.cer

[Fri Oct 23 13:21:09 CST 2020] Your cert key is in /root/.acme.sh/ example.com/ example.com.key

[Fri Oct 23 13:21:09 CST 2020] The intermediate CA cert is in /root/.acme.sh/example.com/ca.cer

[Fri Oct 23 13:21:09 CST 2020] And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer

你可以將 nginx 等 SSL 配置指向該目錄,也可以使用如下命令,將證書安裝到指定目錄:

1

2

3

4

5acme.sh --issue --dns dns_ali -d example.com -d *.example.com\

--installcert\

--key-file /etc/nginx/cert.d/example.com.key\

--fullchain-file /etc/nginx/cert.d/example.com.pem\

--reloadcmd "nginx -s reload"

2. CloudFlare

如果你的域名解析商是 CloudFlare,那么你可以采用這種方式來驗證域名。

首先,你需要申請一個 CloudFlare 的 API KEY,打開 https://dash.cloudflare.com/profile/api-tokens ,Create Token:

按后續(xù)提示操作,生成具有更新 DNS 權(quán)限的 API Key。

可以將 CloudFlare 登錄郵箱和 Key 放到終端的環(huán)境變量中:

1vi ~/.bashrc

把 Key 和 Secret 添加到文件末尾:

1

2export CF_Email="xxxxxx"

export CF_Key="xxxxxx"

使環(huán)境變量生效:

1source ~/.bashrc

下面執(zhí)行如下命令來驗證域名(以 example.com 域名為例)并生成證書:

1acme.sh --issue --dns dns_cf -d example.com -d *.example.com

執(zhí)行后的結(jié)果:

1

2

3

4[Fri Oct 23 13:21:09 CST 2020] Your cert is in /root/.acme.sh/ example.com/ example.com.cer

[Fri Oct 23 13:21:09 CST 2020] Your cert key is in /root/.acme.sh/ example.com/ example.com.key

[Fri Oct 23 13:21:09 CST 2020] The intermediate CA cert is in /root/.acme.sh/example.com/ca.cer

[Fri Oct 23 13:21:09 CST 2020] And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer

你可以將 nginx 等 SSL 配置指向該目錄,也可以使用如下命令,將證書安裝到指定目錄:

1

2

3

4

5acme.sh --issue --dns dns_cf -d example.com -d *.example.com\

--installcert\

--key-file /etc/nginx/cert.d/example.com.key\

--fullchain-file /etc/nginx/cert.d/example.com.pem\

--reloadcmd "nginx -s reload"

二、自動續(xù)期

執(zhí)行完上述命令之后,腳本會在 cron 定時任務中加上一個定時任務,用于定期檢查證書是否過期,并且自動更新 SSL 證書。使用如下命令可以查看該定時任務:

1crontab -l

三、更新 acme.sh

目前由于 acme 協(xié)議和 Let’s Encrypt! 會時常更新,因此需要對 acme.sh 腳本進行更新:

1acme.sh --upgrade

也可以開啟自動更新:

1acme.sh --upgrade --auto-upgrade

關(guān)閉自動更新:

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

本文的版權(quán)歸作者 羅遠航 所有,采用 Attribution-NonCommercial 3.0 License。任何人可以進行轉(zhuǎn)載、分享,但不可在未經(jīng)允許的情況下用于商業(yè)用途;轉(zhuǎn)載請注明出處。感謝配合!

總結(jié)

以上是生活随笔為你收集整理的acme云服务器生成证书_使用 acme.sh 申请 SSL 证书并且定期自动更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。