網(wǎng)站ca證書生成
時間:2023-07-24 12:39:01 | 來源:網(wǎng)站運營
時間:2023-07-24 12:39:01 來源:網(wǎng)站運營
網(wǎng)站ca證書生成:
6.1 申請 TLS 證書
接下來我們要做的,是為我們的域名申請一個真實的 TLS 證書,使網(wǎng)站具備標(biāo)準(zhǔn) TLS 加密的能力及 HTTPS 訪問的能力。這就是 Xray 等現(xiàn)階段安全代理工具確保流量充分加密最重要的工具。
注意
請不要輕易使用自簽證書。它并沒有讓操作簡單太多,但增加了無謂的風(fēng)險(如中間人攻擊)。
這里我會使用一個叫做
="https://github.com/acmesh-official/acme.sh">acme.shopen in new window 的證書管理工具,它簡單、輕量、高效,并可完成證書自動更新。
另外,我相信,現(xiàn)在你已經(jīng)逐漸熟悉了 Linux 的基礎(chǔ)操作,所以已經(jīng)多次出現(xiàn)的命令從本章開始不再重復(fù)截圖、只做簡單的描述。如果實在想不起來怎么用的話,就稍微復(fù)習(xí)一下前面的章節(jié)吧。
#6.2 安裝 acme.sh
- 小小白白 Linux 基礎(chǔ)命令:
- 運行安裝腳本
wget -O - https://get.acme.sh | sh
- 讓
acme.sh
命令生效
. .bashrc
- 開啟
acme.sh
的自動升級
acme.sh --upgrade --auto-upgrade
- 到這一步的完整流程如下圖:
#6.3 測試證書申請
在正式申請證書之前,我們先用測試命令(
--issue --test
)來驗證是否可以成功申請,這樣可以避免在本地配置有誤時,反復(fù)申請證書失敗,超過 Let's Encrypt 的頻率上限(比如,每小時、每個域名、每個用戶失敗最多 5 次),導(dǎo)致后面的步驟無法進(jìn)行。
- 測試證書申請的命令如下(本文均以
ECC
證書為例,因為時至今日,實在沒什么理由不用它):
acme.sh --issue --server letsencrypt --test -d 二級域名.你的域名.com -w /home/vpsadmin/www/webpage --keylength ec-256
1
說明
ECC
證書的主要優(yōu)勢在于它的 Keysize 更小,意味著同等大小下安全性的提升和加密解密速度的加快。如 ECC-256bit 的強度大約相當(dāng)于 RSA-3072bit,何樂而不為呢?當(dāng)然,有人說 ECC 證書握手會明顯更快,這我覺得就有些夸張了,因為 RSA 握手也沒有太慢,就算有差別應(yīng)該也是毫秒級,很難直接感知。
另外,如果有些網(wǎng)站確實需要兼容某些古老設(shè)備的,那也還是請按需選擇RSA
證書。 - 你最終應(yīng)該看到類似這樣的提示:
[Wed 30 Dec 2022 04:25:12 AM EST] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory [Wed 30 Dec 2022 04:25:13 AM EST] Using CA: https://acme-staging-v02.api.letsencrypt.org/directory [Wed 30 Dec 2022 04:25:13 AM EST] Create account key ok. [Wed 30 Dec 2022 04:25:13 AM EST] Registering account: https://acme-staging-v02.api.letsencrypt.org/directory [Wed 30 Dec 2022 04:25:13 AM EST] Registered [Wed 30 Dec 2022 04:25:13 AM EST] ACCOUNT_THUMBPRINT='CU6qmPKuRqhyTAIrF4swosR375194z_1ddUlWef8xDc' [Wed 30 Dec 2022 04:25:13 AM EST] Creating domain key [Wed 30 Dec 2022 04:25:13 AM EST] The domain key is here: /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.key [Wed 30 Dec 2022 04:25:13 AM EST] Single domain='二級域名.你的域名.com' [Wed 30 Dec 2022 04:25:13 AM EST] Getting domain auth token for each domain [Wed 30 Dec 2022 04:25:14 AM EST] Getting webroot for domain='二級域名.你的域名.com' [Wed 30 Dec 2022 04:25:14 AM EST] Verifying: 二級域名.你的域名.com [Wed 30 Dec 2022 04:25:23 AM EST] Pending [Wed 30 Dec 2022 04:25:25 AM EST] Success [Wed 30 Dec 2022 04:25:25 AM EST] Verify finished, start to sign. [Wed 30 Dec 2022 04:25:25 AM EST] Lets finalize the order. [Wed 30 Dec 2022 04:25:25 AM EST] Le_OrderFinalize='https://acme-staging-v02.api.letsencrypt.org/acme/finalize/490205995/7730242871' [Wed 30 Dec 2022 04:25:25 AM EST] Downloading cert. [Wed 30 Dec 2022 04:25:25 AM EST] Le_LinkCert='https://acme-staging-v02.api.letsencrypt.org/acme/cert/xujss5xt8i38waubafz2xujss5xt8i38waubz2' [Wed 30 Dec 2022 15:21:52 AM EST] Cert success. --BEGIN CERTIFICAT-- sxlYqPvWreKgD5b8JyOQX0Yg2MLoRUoDyqVkd31PthIiwzdckoh5eD3JU7ysYBtN cTFK4LGOfjqi8Ks87EVJdK9IaSAu7ZC6h5to0eqpJ5PLhaM3e6yJBbHmYA8w1Smp wAb3tdoHZ9ttUIm9CrSzvDBt6BBT6GqYdDamMyCYBLooMyDEM4CUFsOzCRrEqqvC 2mTTEmhvpojo5rhdTSJxibozyNWTGwoTj0v9pTUeQcGqLIzqi4DowjBHD5guwRid SjAFnm6JT2xUQgWFm58A1gv1OhbH1TRPUUmtE1nFEN7YiSjI4xgxqAXT3CLD2EUb wXlUrO6c75zSsQP4bRMzgOjJUqHtSb6IEqELzt4M7KzL5iCOruCChCo2DZxUwvVX tOoaAyQJzCbTqE6aUqwiKi3gVyoxvDP9mI5JdRYzsDL6GVud7EHPnYeMl9ubLZAK 0vg84mbMP3f6mYM4KRa1cqiyOIcQPT4AzGFYVv4sm049bZQg7sd0Bz9CaFvE7yDA 1y17XlgCDnsjxl66bqI1vkENN9XT5xeFHONqc18b5fZEKSIvdX7iWPFWp1PyMPpG 0pMCP1EymZNFxIMJLgbWqExwLWfPc5Ib3PjBaIqhXPnw6sT2MQSxXwDupq1UJVhV 7E3hQRVlwI4CXi6WLHJMNvNRyyK87gCrLH1bKYsPeRVaz77poWBq49zwBCts6hPY IeF4ltGXyANNIOPEi8vy138fRU4LYh81d8FjOtFfJZogMjwhfNvapqxPMsioPlmX TnZu0n7setrVNUEfTMHWqPpDgk5MPrWLA4LapqaDfEX4pwnQJLMwMi6s94z165c0 iMRSKA1yU5zqv8aNsDfPoY4OkSPWs4MaXgRRSLBsUfZ15DwQXPk76kegHIyxWvwF tYw9HKR5QCMK66fa0z4aJoFVFLK0IIOGEZOanRFUCnkLUDd3QZ3YU8lEcrj7Uxos haiRNICyC6UfsCJ94a8vcNyMosPv3xBLMp19WXgiFYqEFQkntkv1FLRI35fjeJmg 0fmD9VG9bkzGPHihJgQLRlCHasGf6XrdfkSsODAyCUHUHJ0RzqF4YEZMcxDxzuQ2 YO7bFwj7S3mUdVPZ6MPasjxdyBjJgEBMch2uy4AhmudXfEBQBye8W6ZI4ztZjLVV FmP4SIuaNUmMe20TjR8b9NVC96AhxOanWT3mRROsdokpKQGTJvl27EHH8KuAbUOc G6KtPy4wslNZNXWcBy9n63RcWak12r7kAIFn38tZxmlw2WUKoRSMAH64GcDTjRQd Am65hBHzvGrj93wEuVNIebvNIsJOlng3HFjpIxVqKGMCIfWIKGDE3YzK3p4LbGZ6 NZFQWYJLNVf2M9CCJfbEImPYgvctrxl39H6KVYPCw1SAdaj9NneUqmREOQkKoEB0 x6PmNirbMscHhQPSC0JQaqUgaQFgba1ALmzRYAnYhNb0twkTxWbY7DBkAarxqMIp yiLKcBFc5H7dgJCImo7us7aJeftC44uWkPIjw9AKH= --END CERTIFICAT-- [Wed 30 Dec 2022 15:21:52 AM EST] Your cert is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.cer [Wed 30 Dec 2022 15:21:52 AM EST] Your cert key is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.key [Wed 30 Dec 2022 15:21:52 AM EST] The intermediate CA cert is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/ca.cer [Wed 30 Dec 2022 15:21:52 AM EST] And the full chain certs is there: /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/fullchain.cer
- 注意:這里申請的是測試證書,沒辦法直接用的,只是用來證明你的域名、配置全都正確。仔細(xì)觀察,你會發(fā)現(xiàn)給你發(fā)證書的域名是
https://acme-staging-v02.api.letsencrypt.org
,這個 staging
你就理解成【測試服】吧! - 如果這一步出錯的話,你可以運行下面的命令,來查看詳細(xì)的申請過程和具體的錯誤。(看不懂就隱藏掉敏感信息后,去 Xray 群里問吧)
acme.sh --issue --server letsencrypt --test -d 二級域名.你的域名.com -w /home/vpsadmin/www/webpage --keylength ec-256 --debug
1
嗯沒錯,就是在命令的最后加了一個 --debug
參數(shù) - 這一步確定成功之后,就可以申請正式的證書了。(測試證書不需要刪除,它會自動被正式證書覆蓋)
#6.4 正式證書申請
- 申請正式證書的命令如下(即刪掉
--test
參數(shù),并在最后加入 --force
參數(shù)):
acme.sh --set-default-ca --server letsencrypt
1
acme.sh --issue -d 二級域名.你的域名.com -w /home/vpsadmin/www/webpage --keylength ec-256 --force
1
說明
--force
參數(shù)的意思就是,在現(xiàn)有證書到期前,手動(強行)更新證書。上一步我們從“測試服”申請的證書雖然不能直接用,但是它本身是尚未過期的,所以需要用到這個參數(shù)。 - 你最終應(yīng)該看到跟上面很像的提示:
vpsadmin@vps-server:~$ acme.sh --issue -d 二級域名.你的域名.com -w /home/vpsadmin/www/webpage --keylength ec-256 [Wed 30 Dec 2022 15:22:51 AM EST] Using CA: https://acme-v02.api.letsencrypt.org/directory [Wed 30 Dec 2022 15:22:51 AM EST] Creating domain key [Wed 30 Dec 2022 15:22:51 AM EST] The domain key is here: /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.key [Wed 30 Dec 2022 15:22:51 AM EST] Single domain='二級域名.你的域名.com' [Wed 30 Dec 2022 15:22:51 AM EST] Getting domain auth token for each domain [Wed 30 Dec 2022 15:22:51 AM EST] Getting webroot for domain='二級域名.你的域名.com' [Wed 30 Dec 2022 15:22:51 AM EST] Verifying: 二級域名.你的域名.com [Wed 30 Dec 2022 15:22:51 AM EST] Pending [Wed 30 Dec 2022 15:22:51 AM EST] Success [Wed 30 Dec 2022 15:22:51 AM EST] Verify finished, start to sign. [Wed 30 Dec 2022 15:22:51 AM EST] Lets finalize the order. [Wed 30 Dec 2022 15:22:51 AM EST] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/490205996/7730242872' [Wed 30 Dec 2022 15:22:51 AM EST] Downloading cert. [Wed 30 Dec 2022 15:22:51 AM EST] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/vsxvk0oldnuobe51ayxz4dms62sk2dwmw9zhuw' [Wed 30 Dec 2022 15:22:51 AM EST] Cert success. --BEGIN CERTIFICAT-- sxlYqPvWreKgD5b8JyOQX0Yg2MLoRUoDyqVkd31PthIiwzdckoh5eD3JU7ysYBtN cTFK4LGOfjqi8Ks87EVJdK9IaSAu7ZC6h5to0eqpJ5PLhaM3e6yJBbHmYA8w1Smp wAb3tdoHZ9ttUIm9CrSzvDBt6BBT6GqYdDamMyCYBLooMyDEM4CUFsOzCRrEqqvC 2mTTEmhvpojo5rhdTSJxibozyNWTGwoTj0v9pTUeQcGqLIzqi4DowjBHD5guwRid SjAFnm6JT2xUQgWFm58A1gv1OhbH1TRPUUmtE1nFEN7YiSjI4xgxqAXT3CLD2EUb wXlUrO6c75zSsQP4bRMzgOjJUqHtSb6IEqELzt4M7KzL5iCOruCChCo2DZxUwvVX tOoaAyQJzCbTqE6aUqwiKi3gVyoxvDP9mI5JdRYzsDL6GVud7EHPnYeMl9ubLZAK 0vg84mbMP3f6mYM4KRa1cqiyOIcQPT4AzGFYVv4sm049bZQg7sd0Bz9CaFvE7yDA 1y17XlgCDnsjxl66bqI1vkENN9XT5xeFHONqc18b5fZEKSIvdX7iWPFWp1PyMPpG 0pMCP1EymZNFxIMJLgbWqExwLWfPc5Ib3PjBaIqhXPnw6sT2MQSxXwDupq1UJVhV 7E3hQRVlwI4CXi6WLHJMNvNRyyK87gCrLH1bKYsPeRVaz77poWBq49zwBCts6hPY IeF4ltGXyANNIOPEi8vy138fRU4LYh81d8FjOtFfJZogMjwhfNvapqxPMsioPlmX TnZu0n7setrVNUEfTMHWqPpDgk5MPrWLA4LapqaDfEX4pwnQJLMwMi6s94z165c0 iMRSKA1yU5zqv8aNsDfPoY4OkSPWs4MaXgRRSLBsUfZ15DwQXPk76kegHIyxWvwF tYw9HKR5QCMK66fa0z4aJoFVFLK0IIOGEZOanRFUCnkLUDd3QZ3YU8lEcrj7Uxos haiRNICyC6UfsCJ94a8vcNyMosPv3xBLMp19WXgiFYqEFQkntkv1FLRI35fjeJmg 0fmD9VG9bkzGPHihJgQLRlCHasGf6XrdfkSsODAyCUHUHJ0RzqF4YEZMcxDxzuQ2 YO7bFwj7S3mUdVPZ6MPasjxdyBjJgEBMch2uy4AhmudXfEBQBye8W6ZI4ztZjLVV FmP4SIuaNUmMe20TjR8b9NVC96AhxOanWT3mRROsdokpKQGTJvl27EHH8KuAbUOc G6KtPy4wslNZNXWcBy9n63RcWak12r7kAIFn38tZxmlw2WUKoRSMAH64GcDTjRQd Am65hBHzvGrj93wEuVNIebvNIsJOlng3HFjpIxVqKGMCIfWIKGDE3YzK3p4LbGZ6 NZFQWYJLNVf2M9CCJfbEImPYgvctrxl39H6KVYPCw1SAdaj9NneUqmREOQkKoEB0 x6PmNirbMscHhQPSC0JQaqUgaQFgba1ALmzRYAnYhNb0twkTxWbY7DBkAarxqMIp yiLKcBFc5H7dgJCImo7us7aJeftC44uWkPM= --END CERTIFICAT-- [Wed 30 Dec 2022 15:22:52 AM EST] Your cert is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.cer [Wed 30 Dec 2022 15:22:52 AM EST] Your cert key is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/二級域名.你的域名.com.key [Wed 30 Dec 2022 15:22:52 AM EST] The intermediate CA cert is in /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/ca.cer [Wed 30 Dec 2022 15:22:52 AM EST] And the full chain certs is there: /home/vpsadmin/.acme.sh/二級域名.你的域名.com_ecc/fullchain.cer
- 仔細(xì)觀察,你會發(fā)現(xiàn)這次給你發(fā)證書的域名是
https://acme-v02.api.letsencrypt.org
,少了 staging
,自然就是【正式服】了!