之前Y Cheung已經寫過關於網站安裝免費SSL憑證的教程了,而在2024年,操作方法變得更簡單了,本文介紹了2種申請安裝免費SSL憑證的方法。
Let’s Encrypt 免費憑證
Let’s Encrypt提供的免費SSL可以通過CertBot安裝。
⚠如今官網推薦使用Snapcraft安裝,而不是LinuxOS自帶的包管理工具安裝certbot。
Snapcraft是什麼
Snap是 Canonical公司發布的軟件部署和軟件套件管理包,Snapcraft是構建和發布snaps的命令和框架。
安裝 certbot 及 SSL憑證
無論你使用的server是用apt
,dnf
還是yum
管理軟件,都推薦使用snap安裝。
-
目前Ubuntu 16.04LTS以上版本已內置了snap daemon,可以直接使用snap命令,如果你是其他系統,需要先安裝snap。安裝Snap的方法可以參考官方文檔。
-
如果系統中已經通過原生包管理工具安裝了certbot,那麼請先卸載它。通常可以使用以下相對應的命令:
1sudo apt-get remove certbot
2sudo dnf remove certbot
3sudo yum remove certbot
- 安裝certbot
1sudo snap install --classic certbot
- 準備certbot命令
1sudo ln -s /snap/bin/certbot /usr/bin/certbot
- 獲取及安裝ssl憑證。安裝好後會自動在過期前更新憑證,而不用像以前那樣人工操作或另外腳本更新。
1sudo certbot --nginx //如果你的web server是nginx
2sudo certbot --apache //如果你的web server是apache
申請與安裝 Cloudflare 免費憑證
- 在Cloudflare註冊(參考Y Cheung之前寫的《使用Cloudflare加速和保護你的Wordpress網站》)並添加好站點後,在網站管理選單中點擊【SSL/TLS】➡【原始伺服器】,再點擊【建立憑證】按鈕。
- 保留默認選項,點擊【建立】按鈕。
- 接下來的頁面上將顯示有【原點憑證】和【私密金鑰】,如此便能獲得15年的萬用SSL憑證(Wildcard SSL)了,這個憑證只有在這個網站使用CloudFlare做Proxy DNS的時候才會生效。
- ssh登入主機後,將原點憑證內容複製到
/etc/ssl/cert.pem
,將私密金鑰內容複製到/etc/ssl/key.pem
。
- 如果跟Y Cheung 一樣用的是Nginx,那麼更改網站的配置文件將大約如下:
1server {
2 listen 80;
3 listen [::]:80;
4 server_name example.com www.example.com;
5 return 302 https://$server_name$request_uri;
6}
7
8server {
9
10 # SSL configuration
11
12 listen 443 ssl http2;
13 listen [::]:443 ssl http2;
14 ssl_certificate /etc/ssl/cert.pem;
15 ssl_certificate_key /etc/ssl/key.pem;
16
17 server_name example.com www.example.com;
18
19 root /var/www/html;
20 index index.html index.htm index.nginx-debian.html;
21
22 # other configs ...
23}
- 重啟Nginx服務
1sudo /etc/init.d/nginx restart
- 回到Cloudflare SSL/TLS頁面,將SSL/TLS加密模式改為【完整(嚴格)】