成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

如何配置Tomcat以支持SSL

如何配置Tomcat 以支持SSL1、技術(shù)背景SSL(Server Socket Layer)簡介在網(wǎng)絡(luò)上信息在源-宿的傳遞過程中會經(jīng)過其它的計算機(jī)。一般情況下,中間的計算機(jī)不會監(jiān)聽路過的信息。但在使

如何配置Tomcat 以支持SSL

1、技術(shù)背景

SSL(Server Socket Layer)簡介

在網(wǎng)絡(luò)上信息在源-宿的傳遞過程中會經(jīng)過其它的計算機(jī)。一般情況下,中間的計算機(jī)不會監(jiān)聽路過的信息。但在使用網(wǎng)上銀行或者進(jìn)行信用卡交易的時候有可能被監(jiān)視,從而導(dǎo)致個人隱私的泄露。由于Internet 和Intranet 體系結(jié)構(gòu)的原因,總有某些人能夠讀取并替換用戶發(fā)出的信息。隨著網(wǎng)上支付的不斷發(fā)展,人們對信息安全的要求越來越高。因此Netscape 公司提出了SSL 協(xié)議,旨在達(dá)到在開放網(wǎng)絡(luò)(Internet)上安全保密地傳輸信息的目的,這種協(xié)議在WEB 上獲得了廣泛的應(yīng)用。 之后IETF(www.ietf.org)對SSL 作了標(biāo)準(zhǔn)化,即RFC2246,并將其稱為TLS (Transport Layer Security),從技術(shù)上講,TLS1.0與SSL3.0的差別非常微小。

SSL 工作原理

SSL 協(xié)議使用不對稱加密技術(shù)實現(xiàn)會話雙方之間信息的安全傳遞。可以實現(xiàn)信息傳遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的http 協(xié)議,我們在與網(wǎng)站建立SSL 安全連接時使用https 協(xié)議,即采用https://ip:port/的方式來訪問。

當(dāng)我們與一個網(wǎng)站建立https 連接時,我們的瀏覽器與Web Server之間要經(jīng)過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下:

1. 用戶瀏覽器將其SSL 版本號、加密設(shè)置參數(shù)、與session 有關(guān)的數(shù)據(jù)以及其它一

些必要信息發(fā)送到服務(wù)器。

2. 服務(wù)器將其SSL 版本號、加密設(shè)置參數(shù)、與session 有關(guān)的數(shù)據(jù)以及其它一些必

要信息發(fā)送給瀏覽器,同時發(fā)給瀏覽器的還有服務(wù)器的證書。如果配置服務(wù)器的

SSL 需要驗證用戶身份,還要發(fā)出請求要求瀏覽器提供用戶證書。

3. 客戶端檢查服務(wù)器證書,如果檢查失敗,提示不能建立SSL 連接。如果成功,那

么繼續(xù)。

4. 客戶端瀏覽器為本次會話生成pre-master secret ,并將其用服務(wù)器公鑰加密后發(fā)

送給服務(wù)器。

5. 如果服務(wù)器要求鑒別客戶身份,客戶端還要再對另外一些數(shù)據(jù)簽名后并將其與客戶

端證書一起發(fā)送給服務(wù)器。

6. 如果服務(wù)器要求鑒別客戶身份,則檢查簽署客戶證書的CA 是否可信。如果不在信

任列表中,結(jié)束本次會話。如果檢查通過,服務(wù)器用自己的私鑰解密收到的

pre-master secret,并用它通過某些算法生成本次會話的master secret。

7. 客戶端與服務(wù)器均使用此master secret 生成本次會話的會話密鑰(對稱密鑰) 。在

雙方SSL 握手結(jié)束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱

加密比非對稱加密的運(yùn)算量低一個數(shù)量級以上,能夠顯著提高雙方會話時的運(yùn)算速

,

度。

8. 客戶端通知服務(wù)器此后發(fā)送的消息都使用這個會話密鑰進(jìn)行加密。并通知服務(wù)器客

戶端已經(jīng)完成本次SSL 握手。

9. 服務(wù)器通知客戶端此后發(fā)送的消息都使用這個會話密鑰進(jìn)行加密。并通知客戶端服

務(wù)器已經(jīng)完成本次SSL 握手。

10. 本次握手過程結(jié)束,會話已經(jīng)建立。雙方使用同一個會話密鑰分別對發(fā)送以及接受

的信息進(jìn)行加、解密。

2、Java 環(huán)境配置

2.1 JSSE: Java SSL extension

用來支持Java 程序的SSL 。

2.2 Keystore

Java 把密鑰、證書等都放到一個文件中,并且一個文件可以放多個密鑰對和證書信息,并用別名alias 來區(qū)分不同的密鑰和證書,存放這些信息的文件叫做keystore 。

2.3 Keytool

JDK 自帶的用于管理keystore 的工具,具有密鑰生成、導(dǎo)入、導(dǎo)出,證書生成、導(dǎo)入、導(dǎo)出等強(qiáng)大的功能。

2.4 安裝配置

確定已安裝有JDK1.2以上版本(java -version);如果你的機(jī)器安裝了jdk1.4 以上版本(集成了SSL 、keystore 和keytool ),則可略過下面的步驟。

下載JSSE ,URL: (注意,JDK1.4以

上版本已經(jīng)集成JSSE 了,不需要再下載) ,一般來說都只能download 全球版本(還有個版本是美國/加拿大版本,加密位數(shù)沒有限制);

安裝JSSE ,主要是把JSSE 包內(nèi)的lib/*.jar拷貝到JA V A_HOME/jre/lib/ext/下,并且

加入到CLASSPA TH 中 (這一步很重要) ;

編輯JA V A_HOME/jre/lib/security/java.security文件,主要是添加:

security.provider.1=sun.security.provider.Sun (一般系統(tǒng)本來就有這一行)

(注意數(shù)字2應(yīng)該是你的系統(tǒng)security.provider.2=com.sun.net.ssl.internal.ssl.Provider

確定你的系統(tǒng)有下面文件的其中一個:

1) JA V A_HOME/jre/lib/security/jssecacerts或者

2) JA V A_HOME/jre/lib/security/cacerts 原有的最大provider 數(shù)再加一,不一定是2;但一般把它的優(yōu)先級設(shè)為2,而改其它的)

3、申請服務(wù)器證書過程

申請服務(wù)器證書過程如下:

建立保存證書相關(guān)信息的目錄

如:e:myServerCert。

在dos 窗口中敲入以下命令生成keystore 文件,如圖一所示

%java_homebinkeytool -genkey -alias tomcatTest -keyalg RSA -size 2048 -keystore e:myServerCertserverKey.keystore

,

說明:

將提示您輸入保護(hù)keystore 的密碼,至少為六位。

注意問題:姓氏可輸入域名,中國的國家代碼是:CN

-lias tomcatTest 中的tomcatTest 為別名 可以任意輸入

請到e:myServerCert 目錄下確認(rèn)是否生成文件 serverKey.keystore

沒有-size 2048的指定,默認(rèn)產(chǎn)生的是2048位的密鑰對

圖一

產(chǎn)生certificate signature request (CSR) 用來向CA 頒發(fā)機(jī)構(gòu)申請有效

的服務(wù)器證書

%java_homebinkeytool –certreq -keyalg RSA -alias tomcatTest -file e:myServerCert ?rtreq.csr -storepass lxz2003 -keystore e:myServerCertserverKey.keystore

命令行的說明:

-alias tomcatTest 在生成.keystore 的別名

-storepass 訪問.keystore 的密碼

-file certreq.csr 生成證書請求存放的文件

在e:myServerCert目錄下找到certreq.csr 文件用文本編輯器(如notepad.exe 、ultraedit.exe )打開(注意千萬不要改變其中的內(nèi)容或用word 等帶有一定格式的字處理軟件編輯或存儲以上信息。)文件內(nèi)容類似如下:

-----BEGIN NEW CERTIFICATE REQUEST-----

MIIBqjCCARMCAQAwajELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCWd1YW5nZG9u c2hlbnpoZW4xDzANBgNVBAoTBmJ5dHRlcjEPMA0GA1UECxMGYnl0dGVyMRIwEAY MC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALKNsefgVD4KhkgKfY PP7ctq4wMqR807Q joeqqu78hwD4Dd8I4R7Fg6pl6GGMhuOVG s7j59Qf s9pdUM/Sj5ex IM5skhiYSsIgsDWMY/mMl2u212AeNKxR2bzRrWtT0OUv1yHvCmE6CmifqKce51R3Ag BgkqhkiG9w0BAQQFAAOBgQBOq79Rhmt2yo1B2ezUBAv6ieyMLGvYxDID/ SU8UpKw0 rpdpPEQjOPKDnQW1gXyU5zxheWMCh7K4p/r2NNf2cvzs3hGvESwx2/cjDo2q246EoZqy/ LfaUqDbvqCEVS29Z/0tL h6GEcsQU /P6wVvOZ0MFA==

,

-----END NEW CERTIFICATE REQUEST-----

登陸到CFCA 網(wǎng)站提交證書請求,下載證書

得Web Server證書的參考號和授權(quán)碼后,訪問CFCA 統(tǒng)一下載平臺(生產(chǎn)系統(tǒng),測試系統(tǒng):)。

進(jìn)入界面后,如果沒有下載CA 證書鏈的話,可以在該頁面上先點擊下載證書鏈(詳細(xì)介紹見本章4.2),然后點擊“Web 服務(wù)器證書下載”

,

選擇“接受此協(xié)議”進(jìn)入下載界面,輸入?yún)⒖继柡褪跈?quán)碼,并在“選項”中選擇返回的證書的數(shù)據(jù)格式。例如選擇DER (默認(rèn)的方式),把前面得到的PKCS#10格式證書請求(certreq.csr 中的內(nèi)容)粘貼到下面的文本框。

提交該表單,證書將被產(chǎn)生并返回。

保存證書到指定目錄,證書申請完成

,

5、安裝下載CFCA 測試證書鏈

在在證書下載平臺(測試系統(tǒng):

產(chǎn)系統(tǒng)http://www.cfca.com.cn/tongyi/)選擇證書鏈下載,

下載根證書鏈(將CFCA ROOT CA及CFCA OPERATION CA2下的內(nèi)容分被保存為文件),即獲得b_Cert.zip

或者直接在CFCA 網(wǎng)站上下載證書鏈(選擇APACHE 用戶下載):http://www.cfca.com.cn/zhengshu/zhengshu.htm#2

解壓b_Cert.zip(生產(chǎn)系統(tǒng))后,可以看到文件Root_CA.cer,Operation_CA2.cer。 解壓b_Tcerts.zip(測試系統(tǒng))后,可以看到文件CFCARCA.cer ,CFCATESTCA.cer 。 以生產(chǎn)系統(tǒng)為例:1744307125

導(dǎo)入可信任的根證書到你的.keystore 文件中

%java_homebinkeytool -import -alias root –storepass changeit -keystore

%java_home jrelibsecurity?certs -trustcacerts -file C:Downloadsb_TcertsRoot_CA.cer(如果是測試系統(tǒng)就是CFCARCA.cer )

導(dǎo)入可信任的中級證書到你的.keystore 文件中

%java_homebinkeytool -import -alias ca2 –storepass changeit -keystore

java_home jrelibsecurity?certs -trustcacerts -file C:Downloadsb_Tcerts Operation_CA2.cer(如果是測試系統(tǒng)就是CFCATESTCA.cer )

導(dǎo)入剛申請的服務(wù)器證書到你的.keystore 文件中

%java_homebinkeytool -import -alias tomcatTest -storepass lxz2003 -keystore

,

e:myServerCertserverKey.keystore -trustcacerts -file e:myServerCertservercert.cer

注意:-storepass 、-keystore 后面的參量與導(dǎo)入CA 證書的時候不同?。?!

驗證keystore 中的key pairs 和CA 的有效性

%java_homebinkeytool -list –v -alias tomcatTest –storepass lxz2003 -keystore e:myServerCertserverKey.keystore

屏幕輸出如下,圖十。

圖十

6、配置服務(wù)器(TOMCAT )開啟SSL 服務(wù)

6.1 修改tomcat 配置文件server.xml

打開TOMCAT 安裝目錄的confserver.xml文件找到如下文本,取消注釋,添加下面的紅色標(biāo)注內(nèi)容:

port="8443" minProcessors="5" maxProcessors="75"

enableLookups="true"

acceptCount="100" debug="0" scheme="https" secure="true"

,

useURIValidationHack="false" disableUploadTimeout="true">

clientAuth="true" protocol="TLS"

/>

TOMCAT5.5按照如下配置:

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

clientAuth="true" sslProtocol="TLS"

truststoreFile="H:?caratrust.keystore"——證書鏈文件,相當(dāng)于前文的cacerts 文件。

truststorePass=" keystoreFile="H:?caraserverssl.keystore" ——服務(wù)器證書文件,

——相當(dāng)于前文的serverKey.keystore 文件

keystorePass="" >

由于tomcat 不同版本在配置服務(wù)器證書的部分有可能有不同,所以把我們已知的tomcat 版本配置的情況補(bǔ)充在附錄,作為參考。

clientAuth="true":要求客戶端必須出示證書,雙向SSL ;

clientAuth="want":客戶端可以出示證書也可以選擇不出示證書,單雙向SSL ; clientAuth="true":客戶端無須出示證書,單向SSL 。

6.2 測試服務(wù)器證書是否成功安裝

重新啟動TOMCA T, 打開IE 瀏覽器在地址欄內(nèi)輸入:https://127.0.0.1:8443/index.jsp出現(xiàn)如下頁面表示TOMCA T 服務(wù)器證書配置成功,圖十一

,

圖十一

圈選部分雙擊可顯示證書信息。

如果在TOMCAT 的server.xml 配置中將clientAuth="false"改為“true ”,則客戶端必須申請客戶端證書,如沒有客戶端證書則被拒絕訪問(最好設(shè)置為true )顯示如下頁面,圖十二。

,

圖十二

7附錄

由于tomcat 不同版本在配置服務(wù)器證書的部分有可能有不同,所以把我們已知的tomcat 版本配置的情況補(bǔ)充在此,作為參考。

7.1 Tomcat6.0 SSL的配置

1. 參考:

Tomcat 6.0 自帶的文檔docs/ssl-howto.html,詳細(xì)介紹了配置過程。

2. 目的:

以下詳細(xì)描述配置過程,僅作為備忘錄。

3. 備忘錄:

Step1,安裝tomcat 6.0.18,此為當(dāng)前最新版本,需JDK5.0或以上。

l JDK 安裝后,可以在命令行下使用如下命令檢測是否成功。

C:Documents and Settingsnew>java -version

java version "1.6.0_10"

Java(TM) SE Runtime Environment (build 1.6.0_10-b33)

Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

看到以上藍(lán)色信息,則表示JDK 安裝配置成功。

l Tomcat 的運(yùn)行需要配置JDK_HOME和JRE_HOME環(huán)境變量,JRE_HOME默認(rèn)等于JDK_HOME的值。

Step2,創(chuàng)建服務(wù)器端certificate keystore和自簽名certificate 。

在命令行下使用如下命令:

C:Documents and Settingsnew>keytool -genkey -alias mykey -keyalg RSA -keystore

server.keystore

輸入keystore 密碼:123456

再次輸入新密碼:123456

您的名字與姓氏是什么?

[Unknown]: dinstone

您的組織單位名稱是什么?

標(biāo)簽: