《google搜的 具體地址忘了》
一、配置環(huán)境
1.1 Tomcat簡(jiǎn)介
Tomcat是Apache Jakarta的子項(xiàng)目之一,作為一個(gè)優(yōu)秀的開(kāi)源web應(yīng)用服務(wù)器,全面支持jsp1.2以及servlet2.3規(guī)范。因其技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的web應(yīng)用服務(wù)器。
1.2 SSL(Server Socket Layer)簡(jiǎn)介
在網(wǎng)絡(luò)上信息在源-宿的傳遞過(guò)程中會(huì)經(jīng)過(guò)其它的計(jì)算機(jī)。一般情況下,中間的計(jì)算機(jī)不會(huì)監(jiān)聽(tīng)路過(guò)的信息。但在使用網(wǎng)上銀行或者進(jìn)行信用卡交易的時(shí)候有可能被監(jiān)視,從而導(dǎo)致個(gè)人隱私的泄露。由于Internet和Intranet體系結(jié)構(gòu)的原因,總有某些人能夠讀取并替換用戶發(fā)出的信息。隨著網(wǎng)上支付的不斷發(fā)展,人們對(duì)信息安全的要求越來(lái)越高。因此Netscape公司提出了SSL協(xié)議,旨在達(dá)到在開(kāi)放網(wǎng)絡(luò)(Internet)上安全保密地傳輸信息的目的,這種協(xié)議在WEB上獲得了廣泛的應(yīng)用。 之后IETF(www.ietf.org)對(duì)SSL作了標(biāo)準(zhǔn)化,即RFC2246,并將其稱為TLS(Transport Layer Security),從技術(shù)上講,TLS1.0與SSL3.0的差別非常微小。
1.3 SSL工作原理
SSL協(xié)議使用不對(duì)稱加密技術(shù)實(shí)現(xiàn)會(huì)話雙方之間信息的安全傳遞。可以實(shí)現(xiàn)信息傳遞的保密性、完整性,并且會(huì)話雙方能鑒別對(duì)方身份。不同于常用的http協(xié)議,我們?cè)谂c網(wǎng)站建立SSL安全連接時(shí)使用https協(xié)議,即采用https://ip:port/的方式來(lái)訪問(wèn)。
當(dāng)我們與一個(gè)網(wǎng)站建立https連接時(shí),我們的瀏覽器與Web Server之間要經(jīng)過(guò)一個(gè)握手的過(guò)程來(lái)完成身份鑒定與密鑰交換,從而建立安全連接。具體過(guò)程如下:
1. ? ? ?用戶瀏覽器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務(wù)器。
2. ? ? ?服務(wù)器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送給瀏覽器,同時(shí)發(fā)給瀏覽器的還有服務(wù)器的證書。如果配置服務(wù)器的SSL需要驗(yàn)證用戶身份,還要發(fā)出請(qǐng)求要求瀏覽器提供用戶證書。
3. ? ? ?客戶端檢查服務(wù)器證書,如果檢查失敗,提示不能建立SSL連接。如果成功,那么繼續(xù)。
4. ? ? ?客戶端瀏覽器為本次會(huì)話生成pre-master secret,并將其用服務(wù)器公鑰加密后發(fā)送給服務(wù)器。
5. ? ? ?如果服務(wù)器要求鑒別客戶身份,客戶端還要再對(duì)另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服務(wù)器。
6. ? ? ?如果服務(wù)器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結(jié)束本次會(huì)話。如果檢查通過(guò),服務(wù)器用自己的私鑰解密收到的pre-master secret,并用它通過(guò)某些算法生成本次會(huì)話的master secret。
7. ? ? ?客戶端與服務(wù)器均使用此master secret生成本次會(huì)話的會(huì)話密鑰(對(duì)稱密鑰)。在雙方SSL握手結(jié)束后傳遞任何消息均使用此會(huì)話密鑰。這樣做的主要原因是對(duì)稱加密比非對(duì)稱加密的運(yùn)算量低一個(gè)數(shù)量級(jí)以上,能夠顯著提高雙方會(huì)話時(shí)的運(yùn)算速度。
8. ? ? ?客戶端通知服務(wù)器此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。
9. ? ? ?服務(wù)器通知客戶端此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手。
10. ? ? ?本次握手過(guò)程結(jié)束,會(huì)話已經(jīng)建立。雙方使用同一個(gè)會(huì)話密鑰分別對(duì)發(fā)送以及接受的信息進(jìn)行加、解密。
1.4 所需軟件包
• ? ? ?Tomcat 4.0.6
用途:Web Server。
下載:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.6/bin/jakarta-tomcat-4.0.6.exe
• ? ? ?JDK1.4.1_02
其中已經(jīng)包含了JSSE的最新版本。
• ? ? ?JSSE 1.0.3_01
用途:用來(lái)產(chǎn)生Tocmcat使用的密鑰對(duì)(keystore)。
下載: http://java.sun.com/products/jsse/
• ? ? ?Openssl 0.9.7b
用途:用來(lái)產(chǎn)生CA證書、簽名并生成IE可導(dǎo)入的PKCS#12格式私鑰。
下載:http://www.openssl.org/
1.5 軟件包的安裝
• ? ? ?Tomcat 4.0.6安裝(略)
• ? ? ?JSSE 1.0.3_01安裝
1. ? ? ?確定有JDK1.2以上版本(java -version);
2. ? ? ?下載JSSE ? ? ?(注意,JDK1.4已經(jīng)自帶JSSE了,不需要),一般來(lái)說(shuō)都只能download全球版本(還有個(gè)版本是美國(guó)/加拿大版本,加密位數(shù)沒(méi)有限制);
3. ? ? ?安裝JSSE,主要是把JSSE包內(nèi)的lib/*.jar拷貝到JAVA_HOME/jre/lib/ext/下,并且加入到CLASSPATH中;
4. ? ? ?編輯JAVA_HOME/jre/lib/security/java.security文件,主要是添加:
? ? ?security.provider.1=sun.security.provider.Sun ? ? ?security.provider.2=com.sun.net.ssl.internal.ssl.Provider
5. 確定你的系統(tǒng)有下面文件的其中一個(gè):
1)JAVA_HOME/jre/lib/security/jssecacerts或者 ? ? ?
2)JAVA_HOME/jre/lib/security/cacerts
? ? ?你的系統(tǒng)已經(jīng)安裝好了JSSE,下面就是針對(duì)不同的server有不同的配置了。
• ? ? ?Openssl 0.9.7b安裝
請(qǐng)閱讀其解壓縮文檔中的INSTALL文件安裝openssl。
或者可以參考文件“openssl在windows平臺(tái)的安裝編譯.txt”。
二、配置步驟
2.1 建立自己的CA證書(假設(shè)openssl安裝到了c:\openssl)
1.在適當(dāng)?shù)牡胤浇⒆约旱腃A目錄,例如:ca
2. 我的電腦-〉右鍵-〉屬性-〉高級(jí)-〉環(huán)境變量-〉新建->administrator用戶變量-〉變量名:OPENSSL_CONF->變量值:C:\openssl\ssl\openssl.cnf
2.生成CA密鑰
openssl genrsa -out ca/ca-key.pem 1024
genrsa [產(chǎn)生密鑰命令] –out[密鑰文件輸出路徑] 1024 [密鑰位數(shù)]
3.生成待簽名的證書
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
req[產(chǎn)生證書命令]-new[新生成]-out[證書文件輸出路徑]-key[私鑰文件路徑]
4.用CA私鑰自簽名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
x509[簽發(fā)x509證書命令]-req[輸入待簽發(fā)證書]-in[輸入待簽發(fā)證書文件路徑]-out[產(chǎn)生x509證書文件輸出路徑]-signkey[自簽發(fā)密鑰文件路徑]-days[證書有效期]–CA[簽發(fā)跟證書]-Cakey[根證書密鑰文件] –-CAcreateserial[創(chuàng)建序列號(hào)]
2.2 配置Tomcat 4.X
2.2.1建立服務(wù)器證書
[注] 在本文中用符號(hào)"%JDK_HOME%"來(lái)表示JDK的安裝位置,用符號(hào)"%TCAT_HOME%" 表示Tomcat的安裝位置。
1.建立工作目錄
在目錄下建立自己的server目錄,例如:server
2.生成server密鑰對(duì)
C:\j2sdk1.4.1_01\bin\keytool -genkey -alias tomcat -validity 365 -keyalg RSA -keysize 1024 -keystore server/server_keystore
? -genkey[產(chǎn)生密鑰對(duì)]-alias[密鑰對(duì)別名]-validity[密鑰有效期]-keyalg[密鑰算法參數(shù)]-keysize[密鑰位數(shù)]-keypass[密鑰保護(hù)密碼]-storepass[存儲(chǔ)密碼]-dname[別名相關(guān)附加信息]-keystore[密鑰存儲(chǔ)文件路徑]
[注] -alias后的tomcat是密鑰對(duì)的名字可替換為自己需要的名字;
-keypass與-storepass后的密碼為保護(hù)密碼必須6位;
其中cn是服務(wù)器的名字一定要與WEB服務(wù)器中設(shè)置的一樣。
3.生成待簽名證書
C:\j2sdk1.4.1_01\bin\keytool -certreq -alias tomcat -sigalg MD5withRSA -file server/server.csr -keypass allcom -keystore server/server_keystore -storepass allcom
-certreq[產(chǎn)生待簽名證書]-alias[證書別名]-sigalg[證書算法參數(shù)]-file [產(chǎn)生文件輸出路徑]-keypass[密鑰保護(hù)密碼]-keystore[存儲(chǔ)文件路徑]-storepass[存儲(chǔ)密碼]
4.拷貝C:\openssl\apps\ca-cert.srl文件到ca目錄
5.用CA私鑰簽名
openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365
2.2.2將CA根證書和服務(wù)器證書導(dǎo)入Tomcat
1. 導(dǎo)入CA根證書
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias allcom_ca_root -file ca/ca-cert.pem -keystore server/cacerts
-import[導(dǎo)入命令] -v–trustcacerts[導(dǎo)入信任證書] –storepass[存儲(chǔ)密碼]-alias[證書別名]-file[證書文件路徑]-keystore[導(dǎo)入文件路徑]-alias為CA根證書的別名。
2.拷貝cacerts文件到C:\j2sdk1.4.1_01\jre\lib\security目錄
3.導(dǎo)入服務(wù)器證書
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias tomcat -file server/server-cert.pem -keystore server/server_keystore
[注] 此時(shí)的-storepass為生成證書時(shí)輸入密碼。-alias為服務(wù)器證書的別名。
4.查看證書
查看CA證書
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/cacerts
查看服務(wù)器證書
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/server_keystore
2.2.3修改Tomcat的配置文件
1.把文件server/ server_keystore復(fù)制到目錄%TCAT_HOME%/conf下
2.修改conf目錄下server.xml文件找到以下內(nèi)容去掉其注釋并修改。
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
? <Connector className="org.apache.catalina.connector.http.HttpConnector"
? ? ? ? ? port="8443" minProcessors="5" maxProcessors="75"
? ? ? ? ? enableLookups="false"
? ? ? ? ? acceptCount="10" debug="0" scheme="https" secure="true">
? ? <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
? ? ? ? ? clientAuth="true" protocol="TLS"
keystoreFile="c:/tomcat 4.0.6/conf/server_keystore" keystorePass="allcom"/>
? </Connector>
2.3 配置IE客戶端
2.3.1建立Client證書
1.建立自己的Client目錄,例如:client
2.生成Client密鑰對(duì)
openssl genrsa -out client/client-key.pem 1024
3.生成待簽名的證書
openssl req -new -out client/client-req.csr -key client/client-key.pem
4.用CA私鑰簽名
openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
5.生成Client端可以導(dǎo)入的個(gè)人證書
openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
pkcs12[生成PKS12格式證書命令]-export[導(dǎo)出文件]-clerts[僅導(dǎo)出client證書]-in[輸入的client證書文件路徑]-inkey[client證書密鑰文件路徑]-out[導(dǎo)出PKS12格式文件路徑]
2.3.2將CA證書與client證書導(dǎo)入IE
1. 導(dǎo)入CA根證書
將目錄ca中的ca-cert.pem改名為ca-cert.cer;
在client端的IE中使用<工具>,< Internet選項(xiàng)>,<內(nèi)容>,<證書>,<導(dǎo)入>,把我們生成的CA根證書導(dǎo)入,使其成為用戶信任的CA。
2. 導(dǎo)入client證書
將client證書(client.p12)導(dǎo)入到client端的IE中作為client證書,導(dǎo)入過(guò)程同上
三 用IE瀏覽器使用SSL協(xié)議訪問(wèn)Tomcat
1. 執(zhí)行%TCAT_HOME%/bin/startup.bat啟動(dòng)Tomcat 4.0.6;
2. 在IE瀏覽器的地址欄中輸入https://localhost:8443,如果前面的操作都正確,應(yīng)該可以看到網(wǎng)站靜態(tài)導(dǎo)出的頁(yè)面,在這之前,IE提示你是否訪問(wèn)安全頁(yè)面。同時(shí)狀態(tài)欄上的小鎖處于閉合狀態(tài),表示您已經(jīng)成功地與服務(wù)器建立了要求客戶端驗(yàn)證的SSL安全連接
一、配置環(huán)境
1.1 Tomcat簡(jiǎn)介
Tomcat是Apache Jakarta的子項(xiàng)目之一,作為一個(gè)優(yōu)秀的開(kāi)源web應(yīng)用服務(wù)器,全面支持jsp1.2以及servlet2.3規(guī)范。因其技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的web應(yīng)用服務(wù)器。
1.2 SSL(Server Socket Layer)簡(jiǎn)介
在網(wǎng)絡(luò)上信息在源-宿的傳遞過(guò)程中會(huì)經(jīng)過(guò)其它的計(jì)算機(jī)。一般情況下,中間的計(jì)算機(jī)不會(huì)監(jiān)聽(tīng)路過(guò)的信息。但在使用網(wǎng)上銀行或者進(jìn)行信用卡交易的時(shí)候有可能被監(jiān)視,從而導(dǎo)致個(gè)人隱私的泄露。由于Internet和Intranet體系結(jié)構(gòu)的原因,總有某些人能夠讀取并替換用戶發(fā)出的信息。隨著網(wǎng)上支付的不斷發(fā)展,人們對(duì)信息安全的要求越來(lái)越高。因此Netscape公司提出了SSL協(xié)議,旨在達(dá)到在開(kāi)放網(wǎng)絡(luò)(Internet)上安全保密地傳輸信息的目的,這種協(xié)議在WEB上獲得了廣泛的應(yīng)用。 之后IETF(www.ietf.org)對(duì)SSL作了標(biāo)準(zhǔn)化,即RFC2246,并將其稱為TLS(Transport Layer Security),從技術(shù)上講,TLS1.0與SSL3.0的差別非常微小。
1.3 SSL工作原理
SSL協(xié)議使用不對(duì)稱加密技術(shù)實(shí)現(xiàn)會(huì)話雙方之間信息的安全傳遞。可以實(shí)現(xiàn)信息傳遞的保密性、完整性,并且會(huì)話雙方能鑒別對(duì)方身份。不同于常用的http協(xié)議,我們?cè)谂c網(wǎng)站建立SSL安全連接時(shí)使用https協(xié)議,即采用https://ip:port/的方式來(lái)訪問(wèn)。
當(dāng)我們與一個(gè)網(wǎng)站建立https連接時(shí),我們的瀏覽器與Web Server之間要經(jīng)過(guò)一個(gè)握手的過(guò)程來(lái)完成身份鑒定與密鑰交換,從而建立安全連接。具體過(guò)程如下:
1. ? ? ?用戶瀏覽器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務(wù)器。
2. ? ? ?服務(wù)器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送給瀏覽器,同時(shí)發(fā)給瀏覽器的還有服務(wù)器的證書。如果配置服務(wù)器的SSL需要驗(yàn)證用戶身份,還要發(fā)出請(qǐng)求要求瀏覽器提供用戶證書。
3. ? ? ?客戶端檢查服務(wù)器證書,如果檢查失敗,提示不能建立SSL連接。如果成功,那么繼續(xù)。
4. ? ? ?客戶端瀏覽器為本次會(huì)話生成pre-master secret,并將其用服務(wù)器公鑰加密后發(fā)送給服務(wù)器。
5. ? ? ?如果服務(wù)器要求鑒別客戶身份,客戶端還要再對(duì)另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服務(wù)器。
6. ? ? ?如果服務(wù)器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結(jié)束本次會(huì)話。如果檢查通過(guò),服務(wù)器用自己的私鑰解密收到的pre-master secret,并用它通過(guò)某些算法生成本次會(huì)話的master secret。
7. ? ? ?客戶端與服務(wù)器均使用此master secret生成本次會(huì)話的會(huì)話密鑰(對(duì)稱密鑰)。在雙方SSL握手結(jié)束后傳遞任何消息均使用此會(huì)話密鑰。這樣做的主要原因是對(duì)稱加密比非對(duì)稱加密的運(yùn)算量低一個(gè)數(shù)量級(jí)以上,能夠顯著提高雙方會(huì)話時(shí)的運(yùn)算速度。
8. ? ? ?客戶端通知服務(wù)器此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。
9. ? ? ?服務(wù)器通知客戶端此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手。
10. ? ? ?本次握手過(guò)程結(jié)束,會(huì)話已經(jīng)建立。雙方使用同一個(gè)會(huì)話密鑰分別對(duì)發(fā)送以及接受的信息進(jìn)行加、解密。
1.4 所需軟件包
• ? ? ?Tomcat 4.0.6
用途:Web Server。
下載:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.6/bin/jakarta-tomcat-4.0.6.exe
• ? ? ?JDK1.4.1_02
其中已經(jīng)包含了JSSE的最新版本。
• ? ? ?JSSE 1.0.3_01
用途:用來(lái)產(chǎn)生Tocmcat使用的密鑰對(duì)(keystore)。
下載: http://java.sun.com/products/jsse/
• ? ? ?Openssl 0.9.7b
用途:用來(lái)產(chǎn)生CA證書、簽名并生成IE可導(dǎo)入的PKCS#12格式私鑰。
下載:http://www.openssl.org/
1.5 軟件包的安裝
• ? ? ?Tomcat 4.0.6安裝(略)
• ? ? ?JSSE 1.0.3_01安裝
1. ? ? ?確定有JDK1.2以上版本(java -version);
2. ? ? ?下載JSSE ? ? ?(注意,JDK1.4已經(jīng)自帶JSSE了,不需要),一般來(lái)說(shuō)都只能download全球版本(還有個(gè)版本是美國(guó)/加拿大版本,加密位數(shù)沒(méi)有限制);
3. ? ? ?安裝JSSE,主要是把JSSE包內(nèi)的lib/*.jar拷貝到JAVA_HOME/jre/lib/ext/下,并且加入到CLASSPATH中;
4. ? ? ?編輯JAVA_HOME/jre/lib/security/java.security文件,主要是添加:
? ? ?security.provider.1=sun.security.provider.Sun ? ? ?security.provider.2=com.sun.net.ssl.internal.ssl.Provider
5. 確定你的系統(tǒng)有下面文件的其中一個(gè):
1)JAVA_HOME/jre/lib/security/jssecacerts或者 ? ? ?
2)JAVA_HOME/jre/lib/security/cacerts
? ? ?你的系統(tǒng)已經(jīng)安裝好了JSSE,下面就是針對(duì)不同的server有不同的配置了。
• ? ? ?Openssl 0.9.7b安裝
請(qǐng)閱讀其解壓縮文檔中的INSTALL文件安裝openssl。
或者可以參考文件“openssl在windows平臺(tái)的安裝編譯.txt”。
二、配置步驟
2.1 建立自己的CA證書(假設(shè)openssl安裝到了c:\openssl)
1.在適當(dāng)?shù)牡胤浇⒆约旱腃A目錄,例如:ca
2. 我的電腦-〉右鍵-〉屬性-〉高級(jí)-〉環(huán)境變量-〉新建->administrator用戶變量-〉變量名:OPENSSL_CONF->變量值:C:\openssl\ssl\openssl.cnf
2.生成CA密鑰
openssl genrsa -out ca/ca-key.pem 1024
genrsa [產(chǎn)生密鑰命令] –out[密鑰文件輸出路徑] 1024 [密鑰位數(shù)]
3.生成待簽名的證書
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
req[產(chǎn)生證書命令]-new[新生成]-out[證書文件輸出路徑]-key[私鑰文件路徑]
4.用CA私鑰自簽名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
x509[簽發(fā)x509證書命令]-req[輸入待簽發(fā)證書]-in[輸入待簽發(fā)證書文件路徑]-out[產(chǎn)生x509證書文件輸出路徑]-signkey[自簽發(fā)密鑰文件路徑]-days[證書有效期]–CA[簽發(fā)跟證書]-Cakey[根證書密鑰文件] –-CAcreateserial[創(chuàng)建序列號(hào)]
2.2 配置Tomcat 4.X
2.2.1建立服務(wù)器證書
[注] 在本文中用符號(hào)"%JDK_HOME%"來(lái)表示JDK的安裝位置,用符號(hào)"%TCAT_HOME%" 表示Tomcat的安裝位置。
1.建立工作目錄
在目錄下建立自己的server目錄,例如:server
2.生成server密鑰對(duì)
C:\j2sdk1.4.1_01\bin\keytool -genkey -alias tomcat -validity 365 -keyalg RSA -keysize 1024 -keystore server/server_keystore
? -genkey[產(chǎn)生密鑰對(duì)]-alias[密鑰對(duì)別名]-validity[密鑰有效期]-keyalg[密鑰算法參數(shù)]-keysize[密鑰位數(shù)]-keypass[密鑰保護(hù)密碼]-storepass[存儲(chǔ)密碼]-dname[別名相關(guān)附加信息]-keystore[密鑰存儲(chǔ)文件路徑]
[注] -alias后的tomcat是密鑰對(duì)的名字可替換為自己需要的名字;
-keypass與-storepass后的密碼為保護(hù)密碼必須6位;
其中cn是服務(wù)器的名字一定要與WEB服務(wù)器中設(shè)置的一樣。
3.生成待簽名證書
C:\j2sdk1.4.1_01\bin\keytool -certreq -alias tomcat -sigalg MD5withRSA -file server/server.csr -keypass allcom -keystore server/server_keystore -storepass allcom
-certreq[產(chǎn)生待簽名證書]-alias[證書別名]-sigalg[證書算法參數(shù)]-file [產(chǎn)生文件輸出路徑]-keypass[密鑰保護(hù)密碼]-keystore[存儲(chǔ)文件路徑]-storepass[存儲(chǔ)密碼]
4.拷貝C:\openssl\apps\ca-cert.srl文件到ca目錄
5.用CA私鑰簽名
openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365
2.2.2將CA根證書和服務(wù)器證書導(dǎo)入Tomcat
1. 導(dǎo)入CA根證書
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias allcom_ca_root -file ca/ca-cert.pem -keystore server/cacerts
-import[導(dǎo)入命令] -v–trustcacerts[導(dǎo)入信任證書] –storepass[存儲(chǔ)密碼]-alias[證書別名]-file[證書文件路徑]-keystore[導(dǎo)入文件路徑]-alias為CA根證書的別名。
2.拷貝cacerts文件到C:\j2sdk1.4.1_01\jre\lib\security目錄
3.導(dǎo)入服務(wù)器證書
C:\j2sdk1.4.1_01\bin\keytool -import -v -trustcacerts -storepass allcom -alias tomcat -file server/server-cert.pem -keystore server/server_keystore
[注] 此時(shí)的-storepass為生成證書時(shí)輸入密碼。-alias為服務(wù)器證書的別名。
4.查看證書
查看CA證書
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/cacerts
查看服務(wù)器證書
C:\j2sdk1.4.1_01\bin\keytool -list -keystore server/server_keystore
2.2.3修改Tomcat的配置文件
1.把文件server/ server_keystore復(fù)制到目錄%TCAT_HOME%/conf下
2.修改conf目錄下server.xml文件找到以下內(nèi)容去掉其注釋并修改。
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
? <Connector className="org.apache.catalina.connector.http.HttpConnector"
? ? ? ? ? port="8443" minProcessors="5" maxProcessors="75"
? ? ? ? ? enableLookups="false"
? ? ? ? ? acceptCount="10" debug="0" scheme="https" secure="true">
? ? <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
? ? ? ? ? clientAuth="true" protocol="TLS"
keystoreFile="c:/tomcat 4.0.6/conf/server_keystore" keystorePass="allcom"/>
? </Connector>
2.3 配置IE客戶端
2.3.1建立Client證書
1.建立自己的Client目錄,例如:client
2.生成Client密鑰對(duì)
openssl genrsa -out client/client-key.pem 1024
3.生成待簽名的證書
openssl req -new -out client/client-req.csr -key client/client-key.pem
4.用CA私鑰簽名
openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
5.生成Client端可以導(dǎo)入的個(gè)人證書
openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
pkcs12[生成PKS12格式證書命令]-export[導(dǎo)出文件]-clerts[僅導(dǎo)出client證書]-in[輸入的client證書文件路徑]-inkey[client證書密鑰文件路徑]-out[導(dǎo)出PKS12格式文件路徑]
2.3.2將CA證書與client證書導(dǎo)入IE
1. 導(dǎo)入CA根證書
將目錄ca中的ca-cert.pem改名為ca-cert.cer;
在client端的IE中使用<工具>,< Internet選項(xiàng)>,<內(nèi)容>,<證書>,<導(dǎo)入>,把我們生成的CA根證書導(dǎo)入,使其成為用戶信任的CA。
2. 導(dǎo)入client證書
將client證書(client.p12)導(dǎo)入到client端的IE中作為client證書,導(dǎo)入過(guò)程同上
三 用IE瀏覽器使用SSL協(xié)議訪問(wèn)Tomcat
1. 執(zhí)行%TCAT_HOME%/bin/startup.bat啟動(dòng)Tomcat 4.0.6;
2. 在IE瀏覽器的地址欄中輸入https://localhost:8443,如果前面的操作都正確,應(yīng)該可以看到網(wǎng)站靜態(tài)導(dǎo)出的頁(yè)面,在這之前,IE提示你是否訪問(wèn)安全頁(yè)面。同時(shí)狀態(tài)欄上的小鎖處于閉合狀態(tài),表示您已經(jīng)成功地與服務(wù)器建立了要求客戶端驗(yàn)證的SSL安全連接