精品軟體與實用教程
什麼是Certbot?
Certbot 是一個免費的開源軟體工具,用於在手動管理的網站上自動使用Let's Encrypt憑證以啟用HTTPS。
Certbot 由電子前沿基金會(EFF) 開發,這是一個位於加州舊金山的501(c)3 非營利組織,旨在捍衛數位隱私、言論自由和創新。
免費SSL證書機器人網站:https://certbot.eff.org/
快速申請免費SSL域名證書
首先打開EFF官方網站https://certbot.eff.org/
在Software中選擇你伺服器上使用的HTTP服務端,在後面的System中選擇你伺服器的作業系統,以下以Centos8下的Nginx為例子,快速申請https網域名稱憑證。
CentOS 8 下的Nginx申請免費SSL證書
Certbot snap 支援x86_64、ARMv7 和ARMv8 架構。雖然我們強烈建議大多數用戶透過snap 安裝Certbot,但您可以在此處找到替代安裝說明。
1.SSH 進入伺服器
以具有sudo 權限的使用者身分透過 SSH 連線到執行您的HTTP 網站的伺服器。
2.安裝snapd
您需要安裝snapd 並確保按照任何說明啟用經典snap 支援。
按照snapcraft 網站上的這些說明安裝snapd。
在CentOS8 上安裝snap
從7.6 版本開始,Snap 可用於CentOS 8和CentOS 7。它也可用於Red Hat Enterprise Linux (RHEL) 7.6+。
CentOS 8 和CentOS 7 的軟體包位於每個發行版各自的Extra Packages for Enterprise Linux (EPEL) 儲存庫中。在CentOS 8 和CentOS 7 之間新增此儲存庫的說明略有不同,這就是它們在下面單獨列出的原因。
如果您需要知道您執行的是哪個版本的CentOS,請輸入:
cat /etc/centos-release
如果您還沒有將CentOS 儲存庫新增至您的發行版中,可以如下新增。
可以使用以下命令將EPEL 儲存庫新增至CentOS 8 系統:
sudo dnf install epel-release sudo dnf upgrade
安裝snapd
將EPEL 儲存庫新增至CentOS 安裝後,只需安裝snapd套件:
dnf -y install snapd
安裝後,需要啟用管理主snap 通訊套接字的systemd單元:
sudo systemctl enable --now snapd.socket
要啟用經典snap 支持,請輸入以下內容以在/var/lib/snapd/snap和之間建立符號連結/snap:
sudo ln -s /var/lib/snapd/snap /snap
注意:重新啟動系統以確保正確更新snap 的路徑。 Snap 現已安裝並準備就緒了!
3.確保您的snapd 版本是最新的
在機器上的命令列執行以下說明,確保您擁有最新版本的snapd。
sudo snap install core
4.刪除certbot-auto 和任何Certbot OS 包
如果您使用作業系統套件管理員(如apt、dnf或)安裝了任何Certbot 套件yum,則應在安裝Certbot snap 之前將其刪除,以確保在執行命令時使用的certbot是snap,而不是從作業系統套件管理員安裝。具體的命令做到這一點取決於您的作業系統,centos8的卸載命令:
sudo dnf remove certbot
如果您之前透過certbot-auto 腳本使用過Certbot,您也應該按照此處的說明刪除其安裝。
5.安裝免費SSL憑證機器人
在機器上的命令列上執行此命令以安裝Certbot。
sudo snap install --classic certbot
6.準備Certbot 指令
在機器上的命令列執行以下指令,確保certbot命令可以運作。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
7.選擇您希望如何運行Certbot
手動設定證書:如果您只想申請證書,並希望手動更改nginx 配置,請執行此命令。
sudo certbot certonly --nginx
自動設定證書:執行下面命令以取得證書並讓Certbot 自動編輯您的nginx 配置以提供服務,只需幾個步驟即可開啟HTTPS 存取。
sudo certbot --nginx
如果你想在原有的網域名稱證書內部新增域名,在nginx中設定好域名後,使用自動設定證書指令就可以將域名加入原有證書內。
第一步:輸入電子郵件地址(用於緊急續約和安全通知)(輸入'c'取消):輸入你的電子郵件,或按C 取消。
第二步:請閱讀服務條款,網址為https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf。 你必須同意以註冊ACME 伺服器。 你同意?選擇:Y
第三步:一旦您的第一個憑證成功頒發,您是否願意與電子前沿基金會分享您的電子郵件地址Let's Encrypt 專案和非營利組織的合作夥伴開發Certbot? 我們想向您發送有關我們加密網路工作的電子郵件,EFF 新聞、活動和支持數位自由的方式。選擇:Y
第四步:您要為哪些名稱啟動HTTPS?選擇用逗號和/或空格分隔的適當數字,或留下輸入空白選擇顯示的所有選項(輸入「c」取消):回車後開始申請網域證書
成功獲得證書。
憑證保存在:/etc/letsencrypt/live/uzbox.tk/fullchain.pem
金鑰保存在:/etc/letsencrypt/live/uzbox.tk/privkey.pem
該證書將於2022-03-07 到期。這些文件將在證書續約時更新。 Certbot 已經設定了一個排程任務在後台自動更新這個憑證。
部署憑證
uzbox.tk憑證成功部署到/etc/nginx/nginx.conf
恭喜! 您已在 https://uzbox.tk 上成功啟用HTTPS
8.免費SSL自動續約測試
您系統上的Certbot 軟體包隨附一個cron 作業或systemd 計時器,它們會在您的憑證到期之前自動更新您的憑證。除非您變更配置,否則您無需再次執行Certbot。您可以透過執行以下命令來測試憑證的自動續訂:
sudo certbot renew --dry-run
更新certbot 的命令安裝在以下位置之一:
- /etc/crontab/
- /etc/cron.*/*
- systemctl list-timers
9.確認Certbot 工作
若要確認您的網站設定正確,請造訪您的網站是否能正常打開,並在瀏覽器的URL 欄中尋找鎖頭的圖示。
10.如何在ssl憑證內新增域名
在同一台伺服器上建立多個網站的時候,每個網站的網域都需要申請ssl憑證。 Certbot憑證機器人可以將nginx內的所有域名,統一存放在一套ssl憑證中。方便SSL憑證管理更新維護!
新增加網域名稱到SSL憑證中的方法:
在nginx中配置綁定你需要申請證書的新域名,域名綁定後,重新啟動nginx服務,或者重新啟動伺服器使nginx配置生效。
重啟(不停止nginx,使修改配置生效):
systemctl reload nginx
重啟:
systemctl restart nginx
查看服務狀態:
systemctl status nginx
然後在伺服器上輸入下面的命令,使用Certbot證書機器人開始申請證書。
sudo certbot certonly --nginx
使用上面命令,手動設定SSL域名憑證。
Saving debug log to /var/log/letsencrypt/letsencrypt.log Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: - - - - - - - - - - - - - - - - - - - - - - - n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c'or leave input blank to select all options shown (Enter 'c'
按下回車鍵進行下一步申請。
You have an existing certificate that contains a portion of the domains you requested (ref: /etc/letsencrypt/renewal/uzbox.tk.conf) It contains these names: 證書中原有的域名You requested these names for the 晚的網域名稱後,Athmate and this mean names fors 的網域名稱後,Athmate this 格式 - 兩個域名existing certificate with the new certificate? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (E)xpand/(C)ancel: e
按E進行下一步操作。
Renewing an existing certificate for uzbox.tk and 4 more domains Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/uzbox.tk/fullchain.pem Key is saved): /et/to-cm/t. certificate expires on 2022-04-19. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
新的域名ssl憑證申請好了,網域ssl憑證位址還是之前的憑證位址,在nginx中無需更改。