windows server使用 LetsEncrypt-Win-Simple來安裝和使用用Let's Encrypt免費SSL證書
一、網站部署
LetsEncrypt-Win-Simple可以自動發現已經部署的網站供我們選擇要生成證書的網站,而且還需要進行驗證。所以在生成證書之前,確保網站已經部署好並可以正常訪問。
二、生成證書
軟件下載地址如下:
https://github.com/Lone-Coder/letsencrypt-win-simple/releases
直接下載zip壓縮包就好,下載完之後解壓運行裏面的letsencrypt.exe打開控制臺窗口,第一次運行會提示你輸入一個郵箱以供後續使用。
Let‘s Encrypt (Simple Windows ACME Client)
Renewal Period: 60
Certificate Store: WebHosting
ACME Server: https://acme-v01.api.letsencrypt.org/
Config Folder: C:\Users\ling\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
Certificate Folder: C:\Users\ling\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
Getting AcmeServerDirectory
Enter an email address (not public, used for renewal fail notices):
輸入一個可用郵箱回車即開始註冊,並問你是否同意協議
Calling Register
Do you agree to https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf? (Y/N)
輸入Y回車,郵箱註冊完之後,程序會自動獲取當前服務器部署的所有網站,如下:
Scanning IIS Site Bindings for Hosts
1: IIS xxling.com (D:\www\xxx)
2: IIS www.xxling.com (D:\www\xxx)
W: Generate a certificate via WebDav and install it manually.
F: Generate a certificate via FTP/ FTPS and install it manually.
M: Generate a certificate manually.
A: Get certificates for all hosts
Q: Quit
Which host do you want to get a certificate for:
輸入1或者2就會為相應的域名生成證書,M為手動生成一個證書,A則為所有域名生成證書。這裏我們選擇A然後回車繼續,生成完證書程序還會自動為相應網站配置IIS的SSL。選擇了A之後生成的證書在C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org下,具體看後面輸出的提示會有位置信息。
由於Let‘s Encrypt免費SSL證書只有90天的有效期,過期需要更新,該程序會生成一個計劃任務,每天上午9點鐘運行檢查過期的證書並更新。所以生成完成證書會提示你是不是需要指定用戶運行刷新證書的計劃任務(會顯示下次過期的時間),選擇Y,輸入相應的用戶和密碼即可。
註意:生成的計劃任務的執行程序默認是生成證書時的letsencrypt.exe的路徑,請到管理工具-計劃任務查看相應任務屬性,確認action的letsencrypt.exe路徑對不對,如果移動到其它地方了也需要進行相應修改,否則會執行失敗!
三、IIS配置
打開IIS,查看域名綁定,就會看到多了443的端口綁定,證書也以配置好。重啟一下iis,通過https訪問就可以了。
如果是手動配置,在IIS7配置https綁定是host name那欄灰掉,不可輸入,此時如果需要指定相應的域名,可以打開以下位置文件:
C:\Windows\System32\inetsrv\config\applicationHost.config
搜索相應域名找到該網站的配置節點,你會發現不輸入域名是的https配置如下
<binding protocol="https" bindingInformation="*:443:" />
將其改為
<binding protocol="https" bindingInformation=":443:www.xxling.com" />
即可,域名改為自己實際的域名。
其次,要註意的是,IIS只能綁定一個SSL證書,這生成證書的新版軟件好像沒有多域名證書生成的選項了,所以只能把其他域名重定向到有證書的域名上。
四、強制HTTPS訪問
首先IIS配置選中要求SSL選項
IIS6中,站點屬性-》目錄安全性-》編輯中把“要求安全通道(SSL)”勾選上即可。
IIS7、8中,SSL設置-》把“要求SSL”勾選即可
此時通過http訪問的話會報403錯誤,我們找到403的html頁面,加入以下JavaScript腳本進行跳轉:
<script type="text/javascript">
var url = window.location.href;
if (url.indexOf("https") < 0) {
url = url.replace("http:", "https:");
window.location.replace(url);
}
</script>
403文件所在路徑如下:
IIS6.0 :C:\WINDOWS\Help\iisHelp\common\403-4.htm
IIS7.0以上 :C:\inetpub\custerr\zh-CN\403.htm
如果使用的英文版系統zh-CN可能為en-US或者其它。
此時我們通過http訪問我們的網站時就會自動跳轉到https了。
windows server使用 LetsEncrypt-Win-Simple來安裝和使用用Let's Encrypt免費SSL證書