為便于大家掌握,以下介紹采用最簡單的工作環(huán)境(見圖1),即:Web服務(wù)器Windows2000AdvancedServer作為操作系統(tǒng);認(rèn)證中心則在此基礎(chǔ)上增加了“證書頒發(fā)機(jī)構(gòu)”組件,IP地址為10.15.11.13,證書頒發(fā)策略為“立即頒發(fā)”;瀏覽器用IE4.0或IE5.0,服務(wù)器放在Intranet上,通過網(wǎng)絡(luò)頒發(fā)數(shù)字證書。假設(shè)要實現(xiàn)安全Web的站點名為默認(rèn)站點Myweb.
一、數(shù)字證書的取得與管理
(一)生成申請Web站點數(shù)字證書的文件
本操作在Web服務(wù)器端進(jìn)行。具體步驟是:
1.啟動Web服務(wù)器的“Internet信息服務(wù)”
2.在“Internet信息服務(wù)”中,右擊Myweb站點名,選擇快捷菜單的“屬性”命令,出現(xiàn)“Myweb屬性”對話框;
3.單擊“Myweb屬性”對話框中“目錄安全性”頁標(biāo)簽,再單擊“服務(wù)器證書”按鈕。
4.在“IIS證書向?qū)А睂υ捒蛑,按提示,依次選擇“創(chuàng)建一個新證書”,“現(xiàn)在準(zhǔn)備請求,但稍候發(fā)送”等,設(shè)置有關(guān)屬性,將最后的證書申請以文本文件保存,假設(shè)文件名為:E:\\certreq.txt.
5.最后單擊“完成”即可
(二)生成服務(wù)器證書
首先,將證書申請文件內(nèi)容復(fù)制到剪切板。方法是,用記事本打開E:\\certreq.txt,查看申請文件內(nèi)容?梢钥吹竭@是一個純文本文件,以PKCS#10編碼格式保存,首尾兩行為申請的開始與結(jié)束。選擇“編輯/全選”,再選擇“編輯/復(fù)制”即可。
然后生成服務(wù)器證書。緊接前一步,在Web服務(wù)器端依次執(zhí)行:
1.啟動IE,在地址欄打入命令:http://10.15.11.13/certsrv;
2.選擇“申請證書”,單擊“下一步”;
3.選擇申請類型為“高級申請”,單擊“下一步”;
4.選擇第2項“使用Base64編碼的PKCS#10文件提交一個證書申請,或使用Base64編碼的PKCS#7文件更新證書申請”,單擊“下一步”;
5.右擊中間“Base64編碼證書申請”右邊的編輯框,選擇快捷菜單項“粘貼”,將證書申請內(nèi)容粘貼進(jìn)去(見圖2);
圖2(略)
6.單擊“提交”按鈕,則完成申請功能。
7.由于認(rèn)證中心的證書頒發(fā)策略為立即頒發(fā),因此很快,CA中心就會將證書頒發(fā)給你,屏幕上顯示“您申請的證書已發(fā)布給您”,你可以“下載CA證書及CA證書路徑”等提示(見圖3);
圖3(略)
8.選擇“Base64編碼”,單擊對應(yīng)的顯示,將證書以mywebcert.cer為文件名保存在桌面上。
(三)安裝服務(wù)器證書
再進(jìn)入到“myweb屬性”對話框中,單擊“服務(wù)器證書”,在“IIS證書向?qū)А睂υ捒蛑校刺崾静僮骷纯砂惭b服務(wù)器證書。其中要求:
1.選擇“處理掛起的請求并安裝證書”;
2.輸入證書文件名時,單擊“瀏覽”,選擇桌面上的文件“mywebcert”(即存放剛才生成的服務(wù)器證書的文件),單擊“打開”,直到出現(xiàn)“完成”對話框時,單擊“完成”按鈕即完成證書安裝。
(四)查看并備份服務(wù)器證書
接上一步,單擊“myweb屬性”對話框中的“查看證書”按鈕,將顯示服務(wù)器的證書,顯示內(nèi)容略。在“證書”對話框中單擊“詳細(xì)信息”頁,再單擊“復(fù)制到文件”將該證書以文件名mywebcert.pfx保存在桌面上。注意文件的擴(kuò)展名表示“個人信息交換”證書文件,與前面不同,文件保存了證書的公鑰與私鑰。
二、設(shè)置“安全通信”屬性
接上一步,單擊myweb屬性對話框中的“編輯”按鈕,選中“申請安全通道”與“申請客戶證書”(見圖4),再單擊“確定”。
圖4(略)
這表示客戶瀏覽器查看Myweb站點的內(nèi)容時,必須申請安全通道。要申請安全通道,客戶端必須擁有本服務(wù)器信任的證書,否則不允許客戶瀏覽。并且必須在地址欄打入https開頭,而不是Http,進(jìn)行SSL的安全通信。具體操作過程略。
如果允許客戶決定與web服務(wù)器通信加密,或不加密通信,則設(shè)置為“接收客戶證書”。
除此之外,還可以對證書信任列表進(jìn)行設(shè)置,本文略。
三、ASP與安全web站點有關(guān)的對象與方法
(一)Session對象
Session是訪問者從到達(dá)某個特定主頁到離開為止的那段時間,每個訪問者都會單獨獲得一個session.這是一個內(nèi)置對象。其中屬性Session.SessionID可作為一個用戶session的惟一標(biāo)識。我們一般設(shè)置普遍信息非加密瀏覽,敏感信息要求加密通信,例如一個電子商務(wù)網(wǎng)站,登記注冊時要求加密通信,注冊后察看一般產(chǎn)品時用非加密通信,而要輸入信用卡時,又要用加密通信。為此,我們只要將兩類信息在web站點下面分目錄存放,其中非加密瀏覽的目錄取消其“目錄安全性”的“申請安全通道”復(fù)選框即可,方法類同2. ASP用Response.RedirectURL,將瀏覽器在不同的目錄網(wǎng)頁之間轉(zhuǎn)換。同時,檢測Session對象的SessionID屬性,只要它是一樣的,Web服務(wù)器就知道還是同一個用戶瀏覽。
(二)客戶證書集
客戶證書可以通過Request對象來檢測,所有與該Web站點通信的客戶證書的信息存儲在集合Request.ClientCertficate(key[SubField])中。
對于Key,該集合具有如下的關(guān)鍵字:
1.Subject證書的主題。包含所有關(guān)于證書收據(jù)的信息,能和所有的子域后綴一起使用;
2.Issuer證書的發(fā)行人。包含所有關(guān)于證書驗證的信息,除了CN外,能和所有的子域后綴一起使用;
3.ValidFrom證書發(fā)行的日期,使用VBScript格式;
4.ValidUntel證書有效截止日期;
5.Seria1Number證書的序列號;
6.Certificate整個證書內(nèi)容的二進(jìn)制流,使用ASN.1格式。
對于Subfield,Subject和Issuer關(guān)鍵字可以具有如下的子域后綴:(比如SubjectOU或IssuerL)
C表示國家,O表示公司或組織名稱,OU表示組織單元,CN表示用戶的常規(guī)名稱,L表示局部,S表示州(或。,T表示個人或公司的標(biāo)題,GN表示給定名稱,I表示初始。
當(dāng)文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通過使用#INCLUDE包含在你的Active Server Page里時,下面兩個標(biāo)志可以使用:
ceCertPresent指明客戶證書是否存在,其值為TRUE或FALSE.
CeUnrecongnizedIssure指明在該鏈表中的最后的證書的發(fā)行者是否未知,其值為TRUE或FALSE.
(三)服務(wù)器環(huán)境變量中與證書有關(guān)的變量
由環(huán)境變量的集合Request.ServerVaribles檢測,可以通過使用HTTP前綴來讀取任何頭信息。與服務(wù)器證書有關(guān)的信息,可以使用下列變量獲得。
AUTHPASSWORD當(dāng)使用基本驗證模式時,客戶在密碼對話框中輸入的密碼。
AUTHTYPE這是用戶訪問受保護(hù)的腳本時,服務(wù)器用于檢驗用戶的驗證方法。
AUTHUSER代驗證的用戶名。
CERTCOOKIE唯一的客戶證書ID號
CERTFLAG客戶證書標(biāo)志,如有客戶端證書,則bit0為0.如果客戶端證書驗證無效,bit1被設(shè)置為1.
CERTISSUER用戶證書中的發(fā)行者字段。
CERTKEYSIZE安全套接字層連接關(guān)鍵字的位數(shù)。如128.
CERTSECRETKEYSIZE服務(wù)器驗證私人關(guān)鍵字的位數(shù)。如1024.
CERTSERIALNUMBER客戶證書的序列號字段。
CERTSERVERISSUER服務(wù)器證書的發(fā)行者字段。
CERTSERVERSUBJECT服務(wù)器證書的主題字段。
CERTSUBJECT客戶端證書的主題字段。
HTTPS如果請求穿過安全通道(SSL),則返回ON.如果請求來自非安全通道,則返回OFF.
HTTPSKEYSIZE安全套接字層連接關(guān)鍵字的位數(shù),如128.
HTTPSSECRETKEYSIZE服務(wù)器驗證私人關(guān)鍵字的位數(shù),如1024.
HTTPSSERVERISSUER服務(wù)器證書的發(fā)行者字段。
HTTPSSERVERSUBJECT服務(wù)器證書的主題字段。
相關(guān)熱詞: Windows200