熱心網友

配置 IIS 4。0 證書鑒定Ramon AliWindows NT雜志 - 1999 年2月使用證書服務器1。0(Certificate Server 1。0)來作為證書權威如果你能賦予可信用戶透明地訪問加密網站的權限,豈不是很好?這樣的話,每當這些用戶在進入你的站點的時候,就不必總是需要輸入他們的用戶名和口令了。用戶可以同你的網站上的加密部分進行通信,而無須提供用戶名和口令的一個方法是,在配置IIS(Internet Information Server,互連網信息服務器)要求質詢/響應認證之后,在Windows NT系統上使用IE瀏覽器。但如果你的用戶使用的并不是NT系統或IE瀏覽器,那又該怎么辦呢?答案就是:使用Microsoft Certificate Server(微軟證書服務器)。Certificate Server 是 NT 4。0 Option Pack 的組成部分之一,它使你能夠為那些身份驗證合格的用戶生成并發放數字證書,從而使他們在登錄站點時可以不必提供身份證明就可以訪問自己的NT用戶帳號。數字證書對于網絡的安全性非常重要。數字證書實際上是一份電子文檔,計算機系統可以利用它來確定和驗證那些正在瀏覽網絡,收發電子郵件和傳輸文件的用戶的身份。獲取數字證書的一條途徑是通過證書權威。這些機構通過核實用戶的身份而向他們或他們的系統頒發證書。證書服務器(Certificate Server)讓你充當企業內部的證書權威的角色,使你能夠保護員工的機密性,削減開支并提高服務質量。(想獲得關于證書權威和數字證書的背景信息,請參閱1997年10月期上Tao Zhou的文章"You Can Be a Web Certification Authority")然而不幸的是,查找有關配置證書服務器的有價值文檔相當困難。在TechNet和微軟網站上,你或許能找到零星的只字片語,但這些粗略的材料往往使你不能很快就弄明白。所以在本文中,我將和你一起一步步地演示我所了解的安裝和配置證書服務器的過程,包括怎樣安裝證書服務器,啟動證書權威服務和頒發客戶證書。起點首先,你需要安裝IIS4。0,Microsoft Management Console (MMC,微軟管理控制臺)和Certificate Server 1。0。這些都包含在微軟Windows NT 4。0 Option Pack的CD-ROM光盤上。微軟公司在它的站點( 于修正Certificate Server1。0缺陷的最新補丁。該缺陷導致當系統同時允許證書和匿名訪問時,沒有證書的用戶會被擋在站點之外。根據我使用證書服務器的經驗,你其實并不需要這個補丁。因為當你配置訪問許可方式時,你可以避開這個問題。這點后面我將解釋。(但是,我不幸還遇到其他一些錯誤,而目前還沒有針對它們的補丁程序。)從Option Pack CD-ROM光盤上安裝證書服務器。如果你已經安裝了證書服務器而只是還不能讓它正常運行,我將告訴你一個秘訣。當證書服務器的安裝過程提示你在安裝窗口中輸入CA(Certificate Authority,證書權威)的具體信息時,如屏幕1所示,屏幕1如果你在State域中不輸入CA姓名,IIS就不能在它的數據庫中正確的注冊這個CA,導致證書服務器不會接受帶這個CA簽名的客戶證書。如果你碰到了這個問題,你必須重新安裝證書服務器。然而,當你重新安裝證書服務器時,可能會收到下面兩條錯誤信息中的一條--證書服務器配置向導(Configuration Wizard)錯誤或Windows NT安裝錯誤。在所有我碰到的情況下,這些信息僅僅表明文件 f, f, 和 f沒有從Certificate Server 的根目錄 (通常是 C:\winnt\system32\certsrv) 拷貝到CertEnroll 子目錄下。如果你收到這些錯誤信息,不妨手工完成這些文件的拷貝。從NT的控制面板中服務項中啟動證書權威(Certificate Authority)服務。如果服務不能啟動,問題可能是服務器找不到Microsoft Access 數據庫 b。不知道什么原因,證書服務器安裝時將ODBC(Open Database Connectivity,開放式數據庫連接)系統數據源名稱(Data Source Name)指向證書服務器根目錄,而同時在CertAdm子目錄中的 a 文件中卻將其指向C:\winnt\system32 目錄。而實際上證書服務器r 安裝時將 b 文件放在C:\winnt\system32目錄下。所以,需要修改CertSrv 系統數據源名稱 (從控制面板, ODBC項中),使其指向 b 文件, 如屏幕2所示。這樣,你的CA 服務就業已就緒,可以運行了。 屏幕2設置CACertificate Server 安裝程序將提示為服務器創建一個SSL (Secure Sockets Layer,安全套接層) 密匙。SSL 服務器密匙允許網絡服務器和客戶瀏覽器進行安全加密的會話。如果沒有SSL 密匙, IIS 4。0將無法使用基于證書的客戶驗證。在Create New Key(創建新密匙)對話框中通過選擇"Automatically send the request to an online authority(自動將申請發送到某在線權威)"選項,你可以一次生成并簽名SSL服務器密匙請求,如屏幕3所示。屏幕3如果你選擇生成一個密匙請求文件,可以利用證書服務器的命令行實用工具certreq。exe驗證這個文件。 (你可以用此文件從第三方CA那里獲得一個服務器密匙簽名。) 當你獲得一把帶有簽名的密匙時,證書服務器安裝就大功告成了。現在,你必須把你剛創建的CA增加到服務器的可信CA列表中去。通過在你的瀏覽器中安裝服務器密匙可以做到這點。為此,啟動服務器上的IE4。0,瀏覽站點 /certenroll/m。標題為CertificateAuthorityCertificate List 的網頁將會出現,并將列出你剛生成的CA密匙。點擊此連接并選擇"Open this file from its current location(在當前位置打開此文件)",你將看到安裝New Site Certificate(新站點證書)的提示,如屏幕4所示。屏幕4點擊View Certificate, 確證密匙細節輸入無誤,然后點擊OK。你將看到另一提示詢問你將此證書增加到頂級儲藏中,點擊OK。 在IE 4。0中選擇View菜單,依次選擇Internet Options, Content, Authorities,檢查IE 4。0是否已經成功地把證書增加到可信權威列表中了。你將看到剛生成的CA處于IE 4。0的證書權威列表中,如屏幕5所示。屏幕5最后,在IIS安裝的根目錄下(通常是C:\winnt\system32\inetsrv)運行下面的命令。這些命令將利用用你生成的CA的詳細數據更新IIS 數據庫:Iisca Net stop iisadmin /yNet start w3svc 頒發客戶證書現在你可以開始頒發客戶證書了。客戶證書將直接安裝在瀏覽器上。(Netscape 和Microsoft公司的新瀏覽器都支持客戶證書;但是,我將著重講IE4。0。)從客戶端瀏覽 /certenroll/p。CertificateEnrollment Form(證書登記表)將讓你填寫客戶證書的各個細節。正確填寫各項并點擊Submit Request(提交要求)。當提交要求時,將調用IE 4。0的Web Server Enrollment Page(服務器的登記頁)。在該頁面上點擊Download(下傳)就能把客戶證書安裝到瀏覽器上。選擇View菜單,依次選擇Internet Options, Content, Personal,可以檢查客戶證書是否正常安裝了,你將在IE 4。0的Client Authentication(客戶驗證)窗口中看到此客戶證書。在安裝完客戶證書之后,你需要讓IIS知道此證書的擁有者被授權訪問站點上受安全保護的區域。因為IIS的網絡安全性是基于Windows NT用戶帳號的,所以IIS需要某種方法能將每個客戶證書映射到服務器上某個NT用戶或組的帳號上。實際上,IIS是利用用客戶證書映射表(Client Certificate Mapping table)來實現這一點的。為了創建客戶證書映射,你必須將每個證書單獨從一個文本文件中引入IIS。這盡管是個繁瑣的過程,但卻可能是創建相應映射的唯一的方法。所以,必須找到某種方法能捕獲客戶瀏覽器中安裝的客戶證書,并將其存放到文本文件中。最方便的辦法是修改ASP(Active Server Pages,動態服務器網頁)代碼來實現。清單1列出了把客戶證書寫入到一個文本文件中的ASP代碼。清單1 將客戶證書寫到文本文件的ASP代碼Client Certificate Capture 0 thenoutStream。WriteLine( "" )end ifoutStream。WriteLine( "-----END CERTIFICATE-----" )Response。Write "Your certificate information has been received and logged successfully "Response。Write "You will be notified when we have configured your secured access to this Site "%在你的網絡服務器上創建一個目錄來存放此ASP文件,并適當地修改代碼中的路徑,使它能將證書信息寫到正確的地方。修改后的路徑如清單1所示。為了使此ASP程序能創建文本程序(清單1中是cert。txt),你需要在IIS中設置權限,允許對此目錄進行寫操作。設置使存放此ASP文件的目錄能同時以https方式和Anonymous方式訪問,這樣可以建立請求用戶提交證書的提示。為了以https和Anonymous方式訪問,使用https://而不是http://來引用此ASP文件。運行此ASP文件的客戶將收到請求提交客戶證書的提示。結果,用戶提交的信息將寫入到文本文件記錄下來。如果客戶瀏覽此ASP文件時,而沒有客戶證書顯示在客戶驗證窗口內,則可能是IIS元數據庫中的CA信息出了問題。要解決此問題,重新在IIS根目錄下運行上文提到的三個命令(Iisca, NET STOP iisadmin /y,和 NET START w3svc)。現在cert。tx將應該包含客戶證書內容,如清單2所示。將清單2的內容拷貝到你喜愛的文本編輯器中,并保存到文件。清單2 客戶證書碼的例子# Issuer: C=AU, S=Test CA, L=Test Locality, O=Test Organization, OU=Test Unit, CN=Test CA# Subject: EMAIL=ramon@ , C=AU, S=NSW, L=Sydney, O=SMS Consulting Group P/L, OU=Network Services, CN=Ramon Ali# Account: -----BEGIN CERTIFICATE-----MIIDwzCCA22gAwIBAgIIChJSoAAAAAIwDQYJKoZIhvcNAQEEBQAweTELMAkGA1UEBhMCQVUxEDAOBgNVBAgTB1Rlc3QgQ0ExFjAUBgNVBAcTDVRlc3QgTG9jYWxpdHkxGjAYBgNVBAoTEVRlc3QgT3JnYW5pc2F0aW9uMRIwEAYDVQQLEwlUZXN0IFVuaXQxEDAOBgNVBAMTB1Rlc3QgQ0EwHhcNOTgwODIwMDA1MDM3WhcNOTkwODIwMDA1MDM3WjCBnzEfMB0GCSqGSIb3DQEJARYQcmFtb25Ac21zLmNvbS5hdTELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MSEwHwYDVQQKExhTTVMgQ29uc3VsdGluZyBHcm91cCBQL0wxGTAXBgNVBAsTEE5ldHdvcmsgU2VydmljZXMxEjAQBgNVBAMTCVJhbW9uIEFsaTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDOE7cLh26Y56e/vZX/WZVhWGXRE2Dj80ot16z5M0KMvi3nnwN3orDmwNrNlgaCu4TVHhnby/8UjI/qoZ4q/+2/AgMBAAGjggGwMIIBrDALBgNVHQ8EBAMCADgwEwYDVR0lBAwwCgYIKwYBBQUHAwIwgbIGA1UdIwSBqjCBp4AU8T1Ye5xrTFTBMeDkQrNnnAdXoFGhfaR7MHkxCzAJBgNVBAYTAkFVMRAwDgYDVQQIEwdUZXN0IENBMRYwFAYDVQQHEw1UZXN0IExvY2FsaXR5MRowGAYDVQQKExFUZXN0IE9yZ2FuaXNhdGlvbjESMBAGA1UECxMJVGVzdCBVbml0MRAwDgYDVQQDEwdUZXN0IENBghBvHlEkoACshBHSN7WYkDBEMHUGA1UdHwRuMGwwM6AxoC+GLWh0dHA6Ly9HODkwOTU5L0NlcnRTcnYvQ2VydEVucm9sbC9UZXN0IENBLmNybDA1oDOgMYYvZmlsZTovL1xcRzg5MDk1OVxDZXJ0U3J2XENlcnRFbnJvbGxcVGVzdCBDQS5jcmwwCQYDVR0TBAIwADBRBggrBgEFBQcBAQRFMEMwQQYIKwYBBQUHMAKGNWh0dHA6Ly9HODkwOTU5L0NlcnRTcnYvQ2VydEVucm9sbC9HODkwOTU5X1Rlc3QgQ0EuY3J0MA0GCSqGSIb3DQEBBAUAA0EAGRroJjwggP5n812fb1/4/aifi4JqQxgCv5JTg2ocFHvudR924ucrCMWHqbmGW+F0x+jYREnXifyx+alqFU7Ttg==-----END CERTIFICATE-----現在你可以生成客戶證書與NT用戶帳號之間的映射關系了。在IIS 4。0 Directory Security標簽中選擇你想要保護的目錄,按照如129頁屏幕6所示的 Secure Communications 對話框的選項設置許可權限。屏幕6這種許可權限組合設定了對Web訪問者有效證書的請求。在Secure Communications對話框中點擊Edit(編輯)來創建客戶證書映射。(你可以生成通配符映射;但我在此只介紹單個映射。)確定你在Account Mappings(帳號映射)對話框中選中了Basic標簽,如屏幕7所示,點擊Add(添加)來引入你從清單2中拷貝下來的證書文本文件。屏幕7 你將看到提示詢問證書文本文件。輸入該文件的路徑和文件名,點擊OK。在Account Mappings對話框的Basic標簽上,為這個映射指定一個名字,輸入相應的需要訪問此安全區域的用戶的NT帳號名(如IUSR_server等名字),然后輸入并確認其NT用戶口令。成功的映射將如屏幕7所示相仿。恭喜--你成為CA了僅此而已!你已經為用戶創建了客戶證書,捕獲了這些證書寫入文本文件,并最終將此證書映射到NT用戶帳號上。你的用戶現在訪問你的安全網絡區域時可以不必使用傳統的用戶名和口令的機制了。你的用戶將會因更簡便的訪問方式而高興,而你也會更加安心,因為你的安全網絡區是真正安全的 。