1. 程式人生 > >免費申請HTTPS萬用字元證書

免費申請HTTPS萬用字元證書

## 前言 在阿里雲買了一個域名giantliu.cn 部署了自己的部落格系統 [https://www.giantliu.cn/](https://www.giantliu.cn/) 所有用https證書是Let's Encrypt免費申請的 因為申請的免費證書有效期是3個月,今天正好原來的過期了 這裡要重新申請新的證書。所以在這裡記錄一下 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/2.png) ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/3.png) ## 目錄 1.[安裝Certbot](#安裝Certbot) 2.[申請證書](#申請證書) 3.[轉換證書格式](#轉換證書格式) 4.[安裝證書](#安裝證書) ## 安裝Certbot Certbot是輔助申請Let's Encrypt證書的工作 開啟Certbot官網 [官網地址](https://certbot.eff.org/) 第一步是選擇申請證書的種類,這樣Certbot可以根據選擇的種類 來幫助你在不同的環境裡申請證書 這裡我選擇None of the above On Windows ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/6.png) 然後下面會提示我們申請證書的步驟 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/7.png) ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/8.png) 這裡主要的步驟是在要在C盤建立一個目錄C:\Certbot並且當前使用者有許可權操作 然後下載Certbot安裝檔案 [下載地址](https://dl.eff.org/certbot-beta-installer-win32.exe) 下載後安裝 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/11.png) 然後我們以管理員方式執行命令列 ```cmd certbot --help ``` 如果出現以下資訊,就表示Certbot安裝成功了 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/12.png) ## 申請證書 因為我們要申請的證書是萬用字元證書 這樣我只要申請了giantliu.cn的萬用字元證書後 那以giantliu.cn的所有子域都可以用這一個證書 輸入以下命令 ```cmd #以下命令表以以DNS的方式驗證giantliu.cn的域名來申請萬用字元證書 #萬用字元證書的域名為*.giantliu.cn certbot certonly -d *.giantliu.cn --manual --preferred-challenges dns ``` 輸入命令後,會出現幾個要互交的地方 1.輸入你的email地址:郵件地址 2.閱讀服務說明書並同意:A 3.步是別人要用共享你的郵件地址,給你推送相關資訊:Y 4.問你是不是有這個域名的所有權 因為它要你解析一個TXT記錄到固定地址來驗證你是有這個域名的所有權的:Y 然後最下面就是要你解釋一個TXT記錄到_acme-challenge.giantliu.cn 值為:amJUh7UHWPm-CXCTaKtYIinUR3dYpmPWmgxKsnryZLo 到了這一步後,不要急於按回車結束 因為你還沒有解析記錄,不然會申請不成功的 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/13.png) 接下來,因為我的域名解析是在阿里雲做的, 所以我跑到阿里雲的域名解析那裡添加了一條TXT記錄 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/14.png) 新增的記錄並不一定馬上解析成功,所以我們要驗證這個TXT記錄是不是已經生效 我們開啟一個新的命令列,輸入以下命令 查詢看得到的值是不是正確,如果與結果一至 那麼我們就可以在原來的申請證書的命令列按回車繼續我們的申請 ```cmd nslookup -qt=TXT _acme-challenge.giantliu.cn ``` ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/15.png) 按下回車後,Certbot會去驗證我們的DNS記錄 然後如果驗證成功,會把申請到的證書儲存到我們的 C:\Certbot\live\giantliu.cn ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/16.png) ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/17.png) ## 轉換證書格式 因為我的部落格伺服器是用的IIS 而IIS所使用的證書為pfx,所以我們要把申請的證書pem格式轉換成pfx格式 我們輸入以下openssl命令(要安裝openssl工具) ```cmd openssl pkcs12 -export -out giantliu.pfx -inkey privkey.pem -in fullchain.pem -certfile cert.pem ``` ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/18.png) ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/19.png) ## 安裝證書 然後我們把轉換後的證書giantliu.pfx複製到伺服器 點右鍵安裝證書,一直下一步到密碼 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/20.png) 然後輸入證書密碼,輸入剛剛用openssl轉換時輸入的密碼 然後一直下一步,直到完成 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/21.png) 這樣證書就已經匯入到伺服器了 然後在IIS管理器裡面就可以看到我才申請的證書 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/22.png) 接下來就可以把原來的網站繫結的證書換成新的證書 然後再看來我的部落格, HTTPS又回來了 ![Free Let's Encrypt SSL](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/23.png) >個人部落格原文 [https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/](https://www.giantliu.cn/2020/10/30/201030FreeLetsEncryptSSL/)