一、在IIS中生成Certificate Signing Request (CSR)
個人理解:生成CSR就是生成“私鑰/公鑰對”之后從中提取出公鑰。
1. 打開IIS Manager,在根節點中選擇Server Certificates(服務器證書),點擊右側的Create Certificate Request...,然后填寫相應的Distinguished Name Properties(見下圖)。
Common name中填寫域名(如果用於所有二級域名,填*.域名),Organization中公司名稱,Organizational unit填寫部門名稱。
2. 在Cryptographic service provider中選擇Microsoft RSA SChannel Cryptographic Provider,在Bit length中選擇2048。
3. 選擇生成文件的保存路徑,完成之后,在生成的txt文件中就會看到以“-----BEGIN NEW CERTIFICATE REQUEST-----”開頭的CSR內容。這就是接下來在CA機構中生成CA證書時要用到的CSR。
二、從CA機構購買並創建CA證書
這里以GoDaddy為例。
1. 打開godaddy.com網站,通過菜單進入Products -> SSL&Security -> SSL Certificates,選擇Protect All Subdomains("Wildcard"), 在Pick your plan type中,選擇Standard(Validates domain ownership),然后完成購買。
2. 進入My Account -> SSL CERTIFICATES,創建證書(Certificate),創建時將之前得到的CSR內容復制到“CSR文本框”中。
3. 接入來進入GoDaddy的審批流程,在審批過程中需要驗證域名的所有者(dns填加記錄或上傳html文件至網站目錄),驗證成功后很快就會生成CA證書。
4. 下載CA證書文件至生成CSR的服務器上。
三、在IIS中安裝CA證書
1. 回到第一步中生成CSR的服務器上,進入IIS的Server Certificates(服務器證書),點擊Compelete Certificate Request,進入Specify Certificate Authority Response窗口填寫相應內容(見下圖)。
File name填寫第二步中從CA機構下載的證書文件路徑(.crt),Friendly name填寫第一步中創建CSR時填寫的Common name(*.域名),Certificate store選擇Web Hosting,然后點擊OK。
2. 如果用的是IIS 8.0,在創建過程中出現“Failed to remove the certificate”的提示,不用理會。
3. 創建成功之后,會在Server Certificates中看到這個證書。
四、在IIS站點中配置https
1. 在生成CSR的同一台服務器上配置https
1.1 選擇相應的站點,右鍵選擇Edit Bindings,點擊Add。
1.2 在Type中選擇https,在SSL certificate的下拉菜單中會看到之前安裝的CA證書(見下圖)。
1.3 選擇CA證書之后就完成了https的配置。
2. 在另外的服務器上配置https
2.1 先進入之前已經安裝CA證書的服務器,在Server Certificates中導出證書,並將證書文件(.pfx)復制到需要配置https的服務器。
2.2 進入需要配置https的服務器,在Server Certificates中導入證書,導入成功之后,按照之前的1.1-1.3的步驟配置https。
五、其他相關配置
1. 在配置https的服務器的Windows防火牆上允許443的端口的訪問。
2. 如果需要將所有http的請求重定向至https,可在IIS的URL Rewrite Module中添加如下的規則:
web.config中對應的配置:
<rewrite> <rule name="Redirect to HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> </rule> </rules> </rewrite>
參考資料
Generating a Certificate Signing Request — Microsoft IIS 8