久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

配置Tomcat+SSL in Win32的問(wèn)題

 Joshua 2006-02-20
配置Tomcat 4使用SSL
-----------------------
內(nèi)容:

1.Tomcat簡(jiǎn)介
2.SSL(Server Socket Layer)簡(jiǎn)介
3.SSL工作原理
4.配置Tomcat 4.x 使用SSL
5.結(jié)論

趙 梁 ([email protected]) 2002 年 5 月

趙梁,1995年畢業(yè)于北京航空航天大學(xué)。對(duì)J2EE, J2ME以及CORBA, Web Service等技術(shù)比較感興趣,。目前的主要工作是采用J2EE技術(shù)開(kāi)發(fā)供分銷企業(yè)使用的供應(yīng)鏈/銷售鏈ERP,??梢酝ㄟ^(guò)電子郵件 [email protected] 與作者聯(lián)系,。
----------------------

目前介紹配置Tomcat 4使用單向SSL認(rèn)證(只驗(yàn)證服務(wù)器證書)的資料很多,,過(guò)程也比較簡(jiǎn)單,。但是由于配置其使用雙向SSL認(rèn)證(還需要驗(yàn)證客戶端個(gè)人證書)除了需要CA對(duì)證書簽名外,,還要從CA獲得個(gè)人證書。有關(guān)這一問(wèn)題,,目前結(jié)合具體web服務(wù)器來(lái)講解如何操作的資料很少,。作者通過(guò)摸索借助一些SSL工具在本地實(shí)現(xiàn)了簡(jiǎn)單的CA功能,并在此基礎(chǔ)上配置成功了Tomcat的雙向認(rèn)證,,希望能把其中的一些經(jīng)驗(yàn)與大家共享,。不過(guò)受本人水平所限,文中難免會(huì)有錯(cuò)誤與不當(dāng)之處,,敬請(qǐng)大家諒解,。
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ù)器。

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的差別非常微小,。

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ò)程如下:

用戶瀏覽器將其SSL版本號(hào),、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務(wù)器,。
服務(wù)器將其SSL版本號(hào),、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送給瀏覽器,,同時(shí)發(fā)給瀏覽器的還有服務(wù)器的證書,。如果配置服務(wù)器的SSL需要驗(yàn)證用戶身份,還要發(fā)出請(qǐng)求要求瀏覽器提供用戶證書。
客戶端檢查服務(wù)器證書,,如果檢查失敗,,提示不能建立SSL連接。如果成功,,那么繼續(xù),。客戶端瀏覽器為本次會(huì)話生成pre-master secret,,并將其用服務(wù)器公鑰加密后發(fā)送給服務(wù)器,。如果服務(wù)器要求鑒別客戶身份,客戶端還要再對(duì)另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服務(wù)器,。
如果服務(wù)器要求鑒別客戶身份,,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,,結(jié)束本次會(huì)話。如果檢查通過(guò),,服務(wù)器用自己的私鑰解密收到的pre-master secret,,并用它通過(guò)某些算法生成本次會(huì)話的master secret。
客戶端與服務(wù)器均使用此master secret生成本次會(huì)話的會(huì)話密鑰(對(duì)稱密鑰),。在雙方SSL握手結(jié)束后傳遞任何消息均使用此會(huì)話密鑰,。這樣做的主要原因是對(duì)稱加密比非對(duì)稱加密的運(yùn)算量低一個(gè)數(shù)量級(jí)以上,能夠顯著提高雙方會(huì)話時(shí)的運(yùn)算速度,。
客戶端通知服務(wù)器此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密,。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。
服務(wù)器通知客戶端此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密,。并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手,。
本次握手過(guò)程結(jié)束,會(huì)話已經(jīng)建立,。雙方使用同一個(gè)會(huì)話密鑰分別對(duì)發(fā)送以及接受的信息進(jìn)行加,、解密。

4.配置Tomcat 4.x 使用SSL

4.1 用到的軟件包

Tomcat 4.0.2
用途:Web Server,。
下載: http://jakarta./builds/jakarta-tomcat-4.0/release/v4.0.3/bin/
JSSE 1.0,2
用途:用來(lái)產(chǎn)生Tocmcat使用的秘鑰對(duì)(keystore),。
下載: http://java./products/jsse/
Openssl 0.9.9.6
用途:用來(lái)產(chǎn)生CA證書、簽名并生成IE可導(dǎo)入的PKCS#12格式私鑰,。
下載: http://www./
以上工具的安裝過(guò)程可以參考自帶的幫助,,本文就不再詳細(xì)描述了。

4.2 建立自己的CA

4.2.1 建立工作目錄
mkdir ca

4.2.2 生成CA私鑰以及自簽名根證書
4.2.2.1 生成CA私鑰
openssl genrsa -out ca\ca-key.pem 1024

4.2.2.2 生成待簽名證書
openssl req -new -out ca\ca-req.csr -key ca\ca-key.pem

4.2.2.3 用CA私鑰進(jìn)行自簽名
openssl x509 -req -in ca\ca-req.csr -out ca\ca-cert.pem -signkey ca\ca-key.pem -days 365

4.3 設(shè)置Tomcat 4.x
在本文中用符號(hào)"%JDK_HOME%"來(lái)表示JDK的安裝位置,,用符號(hào)"%TCAT_HOME%" 表示Tomcat的安裝位置,。

4.3.1建立工作目錄
mkdir server

4.3.2 生成server端證書
4.3.2.1 生成KeyPair
%JDK_HOME%\bin\keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN" -keystore server\server_keystore

4.3.2.2 生成待簽名證書
%JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server\server.csr -keypass changeit -keystore server\server_keystore -storepass changeit

4.3.2.3 用CA私鑰進(jìn)行簽名
openssl x509 -req -in server\server.csr -out server\server-cert.pem -CA ca\ca-cert.pem -CAkey ca\ca-key.pem -days 365

4.3.2.4 導(dǎo)入信任的CA根證書到JSSE的默認(rèn)位置(%JDK_ROOT %/jre/security/cacerts)
%JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca\ca-cert.pem -keystore %JDK_HOME%\jre\lib\security\cacerts

4.3.2.5 把CA簽名后的server端證書導(dǎo)入keystore
%JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server\server-cert.pem -keystore server\server_keystore

4.3.2.6 查看server端證書
keytool -list -keystore %JDK_HOME%\jre\lib\security\cacerts
keytool -list -keystore server\server_keystore

4.3.3 修改server.xml使Tomcat支持SSL
首先找到以下內(nèi)容,去掉對(duì)其的注釋。然后參照紅色部分修改,。如果配置Tomcat不驗(yàn)證客戶身份,,可以設(shè)置

clientAuth="false"。
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
clientAuth="true" protocol="TLS"
keystoreFile="%TCAT_HOME%/conf/server_keystore" keystorePass="changeit"
/>

然后把文件server\server_keystore復(fù)制到目錄%TCAT_HOME%\conf\下,。

4.4 在IE中安裝個(gè)人證書
4.4.1 建立工作目錄
mkdir client

4.4.2 生成client私鑰并用CA私鑰簽名

4.4.2.1 生成client私鑰
openssl genrsa -out client\client-key.pem 1024

4.4.2.2 生成待簽名證書
openssl req -new -out client\client-req.csr -key client\client-key.pem

4.4.2.3 用CA私鑰進(jìn)行簽名
openssl x509 -req -in client\client-req.csr -out client\client.crt -signkey client\client-key.pem

-CA ca\ca-cert.pem -CAkey ca\ca-key.pem -CAcreateserial -days 365

4.4.2.4 生成client端的個(gè)人證書
因?yàn)镴SSE1.0.2沒(méi)有完全實(shí)現(xiàn)了對(duì)PKCS#12格式文件的操作(只能讀取,,不能輸出),所以在這里需要用openssl制作client端的個(gè)人證書(包含私鑰),。
openssl pkcs12 -export -clcerts -in client\client.crt -inkey client\client-key.pem -out client\client.p12

4.4.2.5 安裝信任的根證書
把ca\ca-key.pem改名為ca\ca-key.cer,,在client端的IE中使用"工具 ‘ Internet選項(xiàng) ‘ 內(nèi)容 ‘ 證書 ‘ 導(dǎo)入"把我們生成的CA根證書導(dǎo)入,使其成為用戶信任的CA,。

4.4.3 安裝個(gè)人證書
把client.p12導(dǎo)入到client端的IE中作為個(gè)人證書,,導(dǎo)入過(guò)程同4.4.2.5。

4.5 用IE瀏覽器使用SSL協(xié)議訪問(wèn)Tomcat

4.5.1 啟動(dòng)Tomcat 4.x
執(zhí)行%TCAT_HOME%\bin\startup.bat啟動(dòng)Tomcat 4.x

4.5.2 用IE訪問(wèn)Tomcat 4.x
在IE瀏覽器的地址欄中輸入https://localhost:8443,,如果前面的操作都正確的話,,應(yīng)該可以看到Tomcat的歡迎頁(yè)面。同時(shí)狀態(tài)欄上的小鎖處于閉合狀態(tài),,表示您已經(jīng)成功地與服務(wù)器建立了要求客戶端驗(yàn)證的SSL安全連接,。

5 結(jié)論
以上我們實(shí)現(xiàn)了為Tomcat 4.x配置要求客戶端驗(yàn)證的SSL的全過(guò)程。對(duì)于其它類型的服務(wù)器,,例如Apache,,Netscape Enterprise Server, Websphere,Weblogic等,,一般只是在服務(wù)器端保存證書的方式略有不同,,但它們的原理都是類似的,配置時(shí)可以在本文中辦法的基礎(chǔ)上做出相應(yīng)的調(diào)整,。

參考資料

Tomcat SSL Configuration HOW-TO
SSL3.0規(guī)范
Description of the Secure Sockets Layer (SSL) Handshake (Q257591)
keytool - Key and Certificate Management Tool
Openssl使用手冊(cè)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多