国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

安全技巧:配置 IIS 4.0 證書鑒定

2019-11-18 22:26:04
字體:
來源:轉載
供稿:網友
配置 IIS 4.0 證書鑒定

Ramon Ali
Windows 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光盤上。微軟公司在它的站點(http://www.microsoft.com/china/)上發布了用
于修正Certificate Server1.0缺陷的最新補丁。該缺陷導致當系統同時允許證書和匿名訪問時,沒有證書的用戶會被擋在站點之
外。根據我使用證書服務器的經驗,你其實并不需要這個補丁。因為當你配置訪問許可方式時,你可以避開這個問題。這點后面我
將解釋。(但是,我不幸還遇到其他一些錯誤,而目前還沒有針對它們的補丁程序。)

從Option Pack CD-ROM光盤上安裝證書服務器。如果你已經安裝了證書服務器而只是還不能讓它正常運行,我將告訴你一個秘
訣。當證書服務器的安裝過程提示你在安裝窗口中輸入CA(Certificate Authority,證書權威)的具體信息時,如屏幕1所示,


屏幕1

如果你在State域中不輸入CA姓名,IIS就不能在它的數據庫中正確的注冊這個CA,導致證書服務器不會接受帶這個CA簽名的客戶證
書。如果你碰到了這個問題,你必須重新安裝證書服務器。然而,當你重新安裝證書服務器時,可能會收到下面兩條錯誤信息中的
一條--證書服務器配置向導(Configuration Wizard)錯誤或Windows NT安裝錯誤。在所有我碰到的情況下,這些信息僅僅表明
文件csback.gif, csbull.gif, 和cslogo.gif沒有從Certificate Server 的根目錄 (通常是 C:/winnt/system32
/certsrv) 拷貝到CertEnroll 子目錄下。如果你收到這些錯誤信息,不妨手工完成這些文件的拷貝。

從NT的控制面板中服務項中啟動證書權威(Certificate Authority)服務。如果服務不能啟動,問題可能是服務器找不到
Microsoft access 數據庫certmdb.mdb。不知道什么原因,證書服務器安裝時將ODBC(Open Database Connectivity,開放式
數據庫連接)系統數據源名稱(Data Source Name)指向證書服務器根目錄,而同時在CertAdm子目錄中的 global.asa 文件中卻
將其指向C:/winnt/system32 目錄。而實際上證書服務器r 安裝時將certmdb.mdb 文件放在C:/winnt/system32目錄下。所以,
需要修改CertSrv 系統數據源名稱 (從控制面板, ODBC項中),使其指向certmdb.mdb 文件, 如屏幕2所示。這樣,你的CA 服務
就業已就緒,可以運行了。


屏幕2

設置CA

Certificate 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列表中去。通過在你的瀏覽器中安裝服務器密匙可以做到這點。為此,啟動服
務器上的IE 4.0 ,瀏覽站點http://server name/certsrv/certenroll/cacerts.htm。標題為Certificate Authority
Certificate 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 /y

Net start w3svc

頒發客戶證書

現在你可以開始頒發客戶證書了。客戶證書將直接安裝在瀏覽器上。(Netscape 和Microsoft公司的新瀏覽器都支持客戶證書;
但是,我將著重講IE 4.0。)從客戶端瀏覽http://server name/certsrv/certenroll/ceenroll.asp。Certificate
Enrollment 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代碼

<% @Language = VBScript %>
<% Response.Buffer = True %>

<html>

<head>
<title>Client Certificate Capture</title>
</head>
<body>
<%
'Instantiate the ASP FileSystemObject in order
'to create a text file
Set fs = Server.CreateObject("Scripting.FileSystemObject")

'Create text file using append mode
Set outStream = fs.OpenTextFile( "C:/Inetpub/wwwroot/certificates/cert.txt", 8, True )

'Save certificate issuer information to text file
outStream.WriteLine( "# Issuer: " & Request.ClientCertificate("Issuer") )

'Extract certificate subject (user) and account information
'from certificate
su = Request.ClientCertificate( "Subject" )
mx = len(su)
for x = 1 to mx
if mid(su,x,1)=chr(10) or mid(su,x,1)=chr(13) then
su=left(su,x-1)+";"+right(su,mx-x)
end if
next
outStream.WriteLine( "# Subject: " & su )
outStream.WriteLine( "# Account: " & Request.ServerVariables("REMOTE_USER") )

'Extract encrypted certificate text from certificate; encode text as 64-bit data
uue = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

outStream.WriteLine( "-----BEGIN CERTIFICATE-----" )
cer = Request.ClientCertificate( "Certificate" )
lcer = len(cer)
l = 0

for x = 1 to lcer step 3
a1 = asc(mid(cer,x,1))
if x+1 <= lcer then
a2 = asc(mid(cer,x+1,1))
if x+2 <=lcer then
a3 = asc(mid(cer,x+2,1))
else
a3 = 0
end if
else
a2 = 0
a3 = 0
end if
outStream.Write mid(uue, (a1 and 252)/4 +1 ,1)
outStream.Write mid(uue, (a1 and 3)*16 + (a2 and 240)/16 +1 ,1)
if x+1 <= lcer then
outStream.Write mid(uue, (a2 and 15)*4 + (a3 and 192)/64 +1 ,1)
if x+2 <= lcer then
outStream.Write mid(uue, (a3 and 63) +1 ,1)
else
outStream.Write "="
end if
else
outStream.Write "=="
end if
l = l +4
if l = 64 then
outStream.WriteLine("")
l = 0
end if
next
if l > 0 then
outStream.WriteLine( "" )
end if
outStream.WriteLine( "-----END CERTIFICATE-----" )

Response.Write "Your certificate information has been received and logged successfully <br>"
Response.Write "You will be notified when we have configured your secured access to this Site "
%>

</body>
</html>

在你的網絡服務器上創建一個目錄來存放此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@sms.com.au, C=AU, S=NSW, L=Sydney, O=SMS Consulting Group P/L, OU=Network Services,
CN=Ramon Ali
# Account:
-----BEGIN CERTIFICATE-----
MIIDwzCCA22gAwIBAgIIChJSoAAAAAIwDQYJKoZIhvcNAQEEBQAweTELMAkGA1UE
BhMCQVUxEDAOBgNVBAgTB1Rlc3QgQ0ExFjAUBgNVBAcTDVRlc3QgTG9jYWxpdHkx
GjAYBgNVBAoTEVRlc3QgT3JnYW5pc2F0aW9uMRIwEAYDVQQLEwlUZXN0IFVuaXQx
EDAOBgNVBAMTB1Rlc3QgQ0EwHhcNOTgwODIwMDA1MDM3WhcNOTkwODIwMDA1MDM3
WjCBnzEfMB0GCSqGSIb3DQEJARYQcmFtb25Ac21zLmNvbS5hdTELMAkGA1UEBhMC
QVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MSEwHwYDVQQKExhTTVMg
Q29uc3VsdGluZyBHcm91cCBQL0wxGTAXBgNVBAsTEE5ldHdvcmsgU2VydmljZXMx
EjAQBgNVBAMTCVJhbW9uIEFsaTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDOE7cL
h26Y56e/vZX/WZVhWGXRE2Dj80ot16z5M0KMvi3nnwN3orDmwNrNlgaCu4TVHhnb
y/8UjI/qoZ4q/+2/AgMBAAGjggGwMIIBrDALBgNVHQ8EBAMCADgwEwYDVR0lBAww
CgYIKwYBBQUHAwIwgbIGA1UdIwSBqjCBp4AU8T1Ye5xrTFTBMeDkQrNnnAdXoFGh
faR7MHkxCzAJBgNVBAYTAkFVMRAwDgYDVQQIEwdUZXN0IENBMRYwFAYDVQQHEw1U
ZXN0IExvY2FsaXR5MRowGAYDVQQKExFUZXN0IE9yZ2FuaXNhdGlvbjESMBAGA1UE
CxMJVGVzdCBVbml0MRAwDgYDVQQDEwdUZXN0IENBghBvHlEkoACshBHSN7WYkDBE
MHUGA1UdHwRuMGwwM6AxoC+GLWh0dHA6Ly9HODkwOTU5L0NlcnRTcnYvQ2VydEVu
cm9sbC9UZXN0IENBLmNybDA1oDOgMYYvZmlsZTovL1xcRzg5MDk1OVxDZXJ0U3J2
XENlcnRFbnJvbGxcVGVzdCBDQS5jcmwwCQYDVR0TBAIwADBRBggrBgEFBQcBAQRF
MEMwQQYIKwYBBQUHMAKGNWh0dHA6Ly9HODkwOTU5L0NlcnRTcnYvQ2VydEVucm9s
bC9HODkwOTU5X1Rlc3QgQ0EuY3J0MA0GCSqGSIb3DQEBBAUAA0EAGRroJjwggP5n
812fb1/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用戶帳號上。你的用戶現在訪
問你的安全網絡區域時可以不必使用傳統的用戶名和口令的機制了。你的用戶將會因更簡便的訪問方式而高興,而你也會更加安
心,因為你的安全網絡區是真正安全的。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察哈| 金川县| 临颍县| 工布江达县| 年辖:市辖区| 海南省| 松阳县| 正宁县| 武陟县| 西丰县| 张家港市| 宝丰县| 濮阳市| 湖口县| 博客| 兴宁市| 友谊县| 连平县| 朝阳市| 龙山县| 石门县| 怀柔区| 五台县| 克东县| 安溪县| 兰西县| 东丽区| 乐亭县| 泾源县| 宝鸡市| 衡阳县| 青川县| 光山县| 民和| 扶风县| 杭锦旗| 枞阳县| 石台县| 大余县| 琼中| 湟中县|