1. 程式人生 > >給IIS新增CA證書以支援https

給IIS新增CA證書以支援https

一、在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>

參考資料