IIS客户端证书访问配置
一、???????? 測試環境配置... 1<?xml:namespace prefix = o />
1、?????????? win2003系統_1.. 1
1.1.???????? 安裝IIS以承載CA證書服務... 1
1.2.???????? 安裝證書服務,CA的公用名稱設置為TestCA.. 1
2、?????????? win2003系統_2.. 2
2.1.???????? 安裝IIS.. 2
3、?????????? win2003系統_3.. 2
二、???????? 配置過程... 3
1、?????????? win2003系統_2申請并配置IIS 的SSL的服務端證書... 3
1.1.???????? 生成證書申請文件... 3
1.2.???????? 提交證書申請... 8
1.3.???????? 頒發證書... 8
1.4.???????? 上安裝證書... 9
1.5.???????? 將web站點配置為要求 SSL 訪問... 11
1.6.???????? 測試IE使用SSL瀏覽... 11
2、?????????? win2003系統_3申請安裝客戶端證書ClientCert2003.. 12
3、?????????? 在win2003系統_2上設置客戶證書映射... 12
3.1.???????? Web服務器上導入客戶端證書... 12
3.2.???????? 導入客戶端證書的根證書... 13
3.3.???????? 設置IIS中網站的客戶端證書映射... 16
3.4.???????? Web網站讀取客戶端映射的windows賬戶... 18
三、???????? 測試... 18
?
本文給出了如何配置IIS通過SSL安全通道進行訪問的方法,并在此基礎上詳細討論了IIS如何設置要求對客戶端提供客戶端證書進行身份驗證。IIS端SSL服務器證書申請和安裝,從而配置SSL安全訪問通道。客戶端證書的申請和安裝,IIS端如何映射客戶端證書到服務器上的windows賬戶等等。
?
一、? 測試環境配置
準備三臺機器,都是windows 2003操作系統,每臺機器的作用,和其上需要安裝的服務和配置如下:
1、 win2003系統_1
ip:192.168.1.11
機器名:win2003base1
服務器作用:這個服務器是用來安裝證書服務,作為一個CA提供證書服務。
1.1.?? 安裝IIS以承載CA證書服務
1.2.?? 安裝證書服務,CA的公用名稱設置為TestCA
在安裝證書服務過程中會生成一個證書服務的證書,一個自己頒給自己的證書作為這個CA的根證書:
在安裝了證書服務后,會把這個TestCA證書保存證書存儲區的多個位置:
l? 本地計算機存儲區中的“個人”、“受信任的根證書頒發機構”、“中級證書頒發機構”,其中在“中級證書頒發機構”下的“證書”和“證書吊銷列表”中都有(為什么會出現在“證書吊銷列表”中?)。
l? 當前用戶存儲區的“個人”。
?
2、 win2003系統_2
ip:192.168.1.12
機器名:win2003base2
服務器作用:這個服務器是用來作為web server,建立一個網站,設置為SSL安全通道訪問,并需要客戶端證書進行訪問。
2.1.?? 安裝IIS
默認網站作為測試客戶端證書訪問的web站點。
?
3、 win2003系統_3
ip:192.168.1.13
機器名:win2003base3
機器作用:這個機器只是作為一個單純的IE客戶端,用來申請客戶端證書并使用證書訪問web server。
?
?
二、? 配置過程
1、 win2003系統_2申請并配置IIS 的SSL的服務端證書
1.1.?? 生成證書申請文件
在IIS要訪問的那個網站的屬性中,“目錄安全性”--“服務器證書”,選新建證書:
下一步:
下一步:
向導使用當前 Web 站點名稱作為默認名稱。它不在證書中使用,但作為友好名稱以助于管理員識別。下一步:
單位和部門,這些信息將放在證書申請中,因此應確保它的正確性。CA 將驗證這些信息并將其放在證書中。瀏覽您的 Web 站點的用戶需要查看這些信息,以便決定他們是否接受證書。下一步:
公用名是證書最后的最重要信息之一。它是 Web 站點的 DNS 名稱(即用戶在瀏覽您的站點時鍵入的名稱)。如果證書名稱與站點名稱不匹配,當用戶瀏覽到您的站點時,將報告證書問題。
如果您的站點在 Web 上并且被命名為 www.contoso.com,這就是您應當指定的公用名。
如果您的站點是內部站點,并且用戶是通過計算機名稱瀏覽的,請輸入計算機的 NetBIOS 或 DNS 名稱。
這里因為win2003系統_2服務器的機器名是win2003base2,所以共用名稱設為win2003base2。
下一步:
下一步:
會要求證書申請的文件名,這是您的證書申請的 Base 64 編碼表示形式。申請中包含輸入到向導中的信息,還包括您的公鑰和用您的私鑰簽名的信息。
將此申請文件發送到 CA。然后 CA 會使用證書申請中的公鑰信息驗證用您的私鑰簽名的信息。CA 也驗證申請中提供的信息。
?
當您將申請提交到 CA 后,CA 將在一個文件中發回證書。然后您應當重新啟動 Web 服務器證書向導。
下一步:
?
完成生成申請過程。
1.2.?? 提交證書申請
證書申請現在可以發送到 CA 進行驗證和處理。當您從 CA 收到證書響應以后,可以再次使用 IIS 證書向導,在 Web 服務器上繼續安裝證書。
?
使用“記事本”打開在前面的過程中生成的證書文件,將它的整個內容復制到剪貼板。
啟動 Internet Explorer,導航到 http://192.168.1.11/certsrv,指向win2003系統_1的證書服務。
單擊“申請一個證書”,然后單擊“下一步”。
在“選擇申請類型”頁中,單擊“高級申請”,然后單擊“下一步”。
在“高級證書申請”頁中,單擊“使用 Base64 編碼的 PKCS#10 文件提交證書申請”,然后單擊“下一步”。
在“提交一個保存的申請”頁中,單擊“Base64 編碼的證書申請(PKCS #10 或 #7)”文本框,按住 CTRL+V,粘貼先前復制到剪貼板上的證書申請。
單擊“提交”。
1.3.?? 頒發證書
提交申請后,在win2003系統_1機器上證書頒發機構中批準頒發這個win2003base2證書。
確認該證書顯示在“頒發的證書”文件夾中,然后雙擊查看它。
在“詳細信息”選項卡中,單擊“復制到文件”,將證書保存為 Base-64 編碼的 X.509 證書。
關閉證書的屬性窗口。
1.4.?? 上安裝證書
在win2003系統_2在IIS的Web 站點,然后單擊“屬性”,單擊“目錄安全性”選項卡。
單擊“服務器證書”啟動 Web 服務器證書向導。
?單擊“處理掛起的申請并安裝證書”,然后單擊“下一步”。
?輸入包含 CA 響應的文件的路徑和文件名,然后單擊“下一步”。
檢查證書概述,單擊“下一步”,然后單擊“完成”。
現在,已在 Web 服務器上安裝了證書。
win2003base2證書就會被安裝到win2003系統_2機器上,證書會被安裝到證書存儲區的本地計算機存儲區中的“個人”。
1.5.?? 將web站點配置為要求 SSL 訪問
在IIS中查看這個Web 站點的屬性。 單擊“目錄安全性”選項卡。 單擊“安全通信”下的“編輯”。 單擊“要求安全通道 (SSL)”。現在客戶端必須使用 HTTPS 瀏覽到此虛擬目錄。
?
1.6.?? 測試IE使用SSL瀏覽
用IE通過SSL瀏覽此網站,如下:
?
?
2、 win2003系統_3申請安裝客戶端證書ClientCert2003
在win2003系統_3機器上上打開win2003系統_1機器上證書服務的URL:http://192.168.1.11/certsrv,提交一個 “Web 瀏覽器證書”,姓名為“ClientCert2003”。
提交申請后,在win2003系統_1機器上證書頒發機構中批準頒發這個ClientCert2003證書。
在win2003系統_3機器上“查看掛起的證書申請的狀態”,會看到整個證書申請已被批準,并能夠被安裝。
點擊安裝證書,同樣在安裝過程中會提示是否安裝ClientCert2003證書的根證書TestCA,選擇安裝。
安裝好證書后,ClientCert2003證書就會被安裝到win2003系統_3機器上,證書會被安裝到證書存儲區的當前用戶存儲區中的“個人”。
同時,ClientCert2003證書的根證書TestCA也被安裝,被安裝到了當前用戶存儲區中的 “受信任的根證書頒發機構”。
3、 在win2003系統_2上設置客戶證書映射
3.1.?? Web服務器上導入客戶端證書
在IIS中要映射客戶端的證書到windows賬戶,必須在IIS所在的服務器上用這個客戶端的cer證書。
在win2003系統_1機器上證書頒發機構中導出客戶端申請后已經頒發的ClientCert2003證書,導出為ClientCert2003.cer
在win2003系統_2機器上導入這個證書到當前用戶存儲區的個人目錄下。
?
3.2.?? 導入客戶端證書的根證書
Web服務端有了客戶證書,還需要這個客戶端證書的根證書,只有在服務器信任這個客戶端證書的根證書時客戶端證書才能正常訪問web服務器。
在證書管理中雙擊ClientCert2003證書查看此證書:
可以看到,ClientCert2003的根證書TestCA在此服務器上不被信任,需要把TestCA證書安裝到此服務器的受信任的根證書頒發機構存儲里。
查看此根證書:
點擊“安裝證書”按鈕,出現證書導入向導,選擇“將所有的證書放入下列存儲”,然后點擊“瀏覽”按鈕選擇證書安裝的存儲區:
選擇把證書保存到“受信任的根證書頒發機構”-“本地計算機”。
TestCA證書導入成功,到證書管理中查看,發現TestCA證書其實被安裝到兩個地方,分別是:
l? 證書當前用戶存儲區的“受信任的根證書頒發機構”
l? 證書本地計算機存儲區的“受信任的根證書頒發機構”
3.3.?? 設置IIS中網站的客戶端證書映射
在win2003系統_2機器上IIS中,查看web網站的屬性,導航到“目錄安全性”,首先把所有的身份驗證方法都清除:
然后在安全通訊區域內,點擊“編輯”按鈕:
?
設置“要求客戶端證書”,并選擇“啟用客戶端證書映射”,最后點擊“編輯”添加ClientCert2003客戶端證書映射到的本服務器上的windows賬戶:
由于是測試,這里把ClientCert2003客戶端證書映射為administrator
?
3.4.?? Web網站讀取客戶端映射的windows賬戶
在測試網站中設計一個test.aspx頁面,用來讀取當前用戶身份并顯示出來,簡單的下面一條語句:
當前證書映射的用戶是:<% =System.Threading.Thread.CurrentPrincipal.Identity.Name %>
?
三、? 測試
win2003系統_3是測試客戶端,已經安裝了客戶端證書ClientCert2003,在win2003系統_3的IE中輸入test.aspx的URL,首先彈出選擇證書的對話框:
?
其中ClientCert2003_3證書是win2003系統_3在證書服務器上另外又申請了一個web瀏覽器證書,跟ClientCert2003是同一個根證書,當瀏覽器中存在跟服務端相匹配的多個證書時,瀏覽器會彈出上面的對話框讓用戶選擇使用哪個證書。
如果瀏覽器中只有一個證書跟服務器能匹配,則瀏覽器不彈出選擇對話框,直接把匹配的證書發送到服務端。如果把ClientCert2003_3證書從win2003系統_3機器上刪除,訪問test.aspx將不會再出現上面的對話框。
如果瀏覽器中沒有證書跟服務器匹配,瀏覽器就會顯示需要提供SSL的客戶端證書。
?
選擇了ClientCert2003證書,點擊“確定”按鈕:
?
服務端允許訪問,并且顯示了映射到的用戶就是WIN2003BASE2\Administrator
?
轉載于:https://www.cnblogs.com/chnking/archive/2008/08/18/1270063.html
總結
以上是生活随笔為你收集整理的IIS客户端证书访问配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给线程变量pthread_t *thre
- 下一篇: 顺子对百录收录的看法