如何獲取免費的SSL證書

據我知道有兩種:一種是阿里雲申請,一個賬戶可以申請20個證書,每次申請的證書期限一年;另一種是Let’s Encrypt的免費證書,需要通過腳本生成,證書的期限只有三個月,一般會使用的自動腳本定時更新證書。 前者比較簡單,以後再分享。下面介紹下Let’s Encrypt的免費證書獲取,操作系統certos7。

1. 域名準備

將申請的域名的解析到服務器地址。在服務器上搭建nginx服務或其他http的服務,這裏我選用了nginx的服務。保證訪問域名可行的,能瀏覽的nginx的默認的html內容。

在這裏插入圖片描述
圖1 nginx的默認html

注意事項:下面的幾步的操作都是在此安裝了nginx的服務器執行。

2. 安裝acme腳本

acme是一個開源的生成Let’s Encrypt的證書腳本。但也可以使用letsencrypt。我覺得acme使用起來較簡單。安裝acme腳本,執行命令:

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

wget -O - https://get.acme.sh|sh

這兩個命名執行任何一個都可以,也可以訪問github:https://github.com/acmesh-official/acme.sh 進一步瞭解acme詳情。

3. 生成SSL證書

在安裝acme的用戶下,進入目錄,命令: cd ~/.acme.sh
在這裏插入圖片描述
圖2 .acme.sh目錄

執行生成證書的命名:

./acme.sh --issue -w /usr/share/nginx/html -d 域名.com --nginx

生成的證書在當前 目錄以「域名.com」爲命的目錄下面。主要文件有fullchain.cer、域名.com.cer、域名.com.key、ca.cer。

注意事項:參數-w爲webroot的目錄,具體根據nginx的安裝情況配置,「/usr/share/nginx/html」爲nginx的html目錄。

4. 修改nginx配置

在nginx.conf配置文件中,找到SSL相關的配置,如圖,將域名.com.cer、域名.com.key兩文件的路徑和文件名配置到ssl_certificate、ssl_certificate_key參數上即可。

在這裏插入圖片描述
圖3 nginx.conf

5. 重啓nginx

測試證書是否生效,查看瀏覽器地址欄的安全圖標,以chrome爲例 正常狀態會顯示一把鎖的圖標,點擊會彈出證書的說明信息。

7. 更新證書

執行命令: ./acme.sh --renew -d mydomain.com --force

注意事項:如果nginx的根目錄定向到其他服務,會發生報錯。