版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、如何配置Tomcat以支持SSL1、技術背景SSL(Server Socket Layer)簡介在網(wǎng)絡上信息在源-宿的傳遞過程中會經過其它的計算機。一般情況下,中間的計算機不會監(jiān)聽路過的信息。但在使用網(wǎng)上銀行或者進行信用卡交易的時候有可能被監(jiān)視,從而導致個人隱私的泄露。由于Internet和Intranet體系結構的原因,總有某些人能夠讀取并替換用戶發(fā)出的信息。隨著網(wǎng)上支付的不斷發(fā)展,人們對信息安全的要求越來越高。因此Netscape公司提出了SSL協(xié)議,旨在達到在開放網(wǎng)絡(Internet)上安全保密地傳輸信息的目的,這種協(xié)議在WEB上獲得了廣泛的應用。 之后IETF(www.ietf.or
2、g)對SSL作了標準化,即RFC2246,并將其稱為TLS(Transport Layer Security),從技術上講,TLS1.0與SSL3.0的差別非常微小。SSL工作原理SSL協(xié)議使用不對稱加密技術實現(xiàn)會話雙方之間信息的安全傳遞??梢詫崿F(xiàn)信息傳遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的http協(xié)議,我們在與網(wǎng)站建立SSL安全連接時使用https協(xié)議,即采用https:/ip:port/的方式來訪問。當我們與一個網(wǎng)站建立https連接時,我們的瀏覽器與Web Server之間要經過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下: 1. 用戶瀏覽
3、器將其SSL版本號、加密設置參數(shù)、與session有關的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務器。2. 服務器將其SSL版本號、加密設置參數(shù)、與session有關的數(shù)據(jù)以及其它一些必要信息發(fā)送給瀏覽器,同時發(fā)給瀏覽器的還有服務器的證書。如果配置服務器的SSL需要驗證用戶身份,還要發(fā)出請求要求瀏覽器提供用戶證書。3. 客戶端檢查服務器證書,如果檢查失敗,提示不能建立SSL連接。如果成功,那么繼續(xù)。 4. 客戶端瀏覽器為本次會話生成pre-master secret,并將其用服務器公鑰加密后發(fā)送給服務器。 5. 如果服務器要求鑒別客戶身份,客戶端還要再對另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服
4、務器。 6. 如果服務器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的pre-master secret,并用它通過某些算法生成本次會話的master secret。7. 客戶端與服務器均使用此master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數(shù)量級以上,能夠顯著提高雙方會話時的運算速度。 8. 客戶端通知服務器此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知服務器客戶端已經完成本次SSL握手。 9
5、. 服務器通知客戶端此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知客戶端服務器已經完成本次SSL握手。 10. 本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分別對發(fā)送以及接受的信息進行加、解密。2、Java 環(huán)境配置2.1 JSSE: Java SSL extension用來支持Java程序的SSL。2.2 KeystoreJava把密鑰、證書等都放到一個文件中,并且一個文件可以放多個密鑰對和證書信息,并用別名alias來區(qū)分不同的密鑰和證書,存放這些信息的文件叫做keystore。2.3 KeytoolJDK自帶的用于管理keystore的工具,具有密鑰生成、導入、導出,證書生成
6、、導入、導出等強大的功能。2.4 安裝配置確定已安裝有JDK1.2以上版本(java -version);如果你的機器安裝了jdk1.4 以上版本(集成了SSL、keystore和keytool),則可略過下面的步驟。Ø 下載JSSE,URL: (注意,JDK1.4以上版本已經集成JSSE了,不需要再下載),一般來說都只能download全球版本(還有個版本是美國/加拿大版本,加密位數(shù)沒有限制);Ø 安裝JSSE,主要是把JSSE包內的lib/*.jar拷貝到JAVA_HOME/jre/lib/ext/下,并且加入到CLASSPATH中 (這一步很重要);Ø 編輯
7、JAVA_HOME/jre/lib/security/java.security文件,主要是添加:vider.1=vider.Sun(一般系統(tǒng)本來就有這一行)vider.2=.ernal.ssl.Provider(注意數(shù)字2應該是你的系統(tǒng)原有的最大provider數(shù)再加一,不一定是2;但一般把它的優(yōu)先級設為2,而改其它的)Ø 確定你的系統(tǒng)有下面文件的其中一個:1) JAVA_HOME/jre/lib/security/jssecacerts或者2) JAVA_HOME/jre/lib/sec
8、urity/cacerts3、申請服務器證書過程 申請服務器證書過程如下:Ø 建立保存證書相關信息的目錄如:e:myServerCert。Ø 在dos窗口中敲入以下命令生成keystore文件,如圖一所示java_home%binkeytool -genkey -alias tomcatTest -keyalg RSA -size 2048 -keystore e:myServerCertserverKey.keystore說明:將提示您輸入保護keystore的密碼,至少為六位。注意問題:姓氏可輸入域名,中國的國家代碼是:CN-lias tomcatTest 中的tomc
9、atTest 為別名 可以任意輸入請到e:myServerCert 目錄下確認是否生成文件 serverKey.keystore 沒有-size 2048的指定,默認產生的是2048位的密鑰對圖一 Ø 產生certificate signature request (CSR) 用來向CA頒發(fā)機構申請有效的服務器證書java_home%binkeytool certreq -keyalg RSA -alias tomcatTest -file e:myServerCert certreq.csr -storepass lxz2003 -keystore e:myServerCertse
10、rverKey.keystore命令行的說明:-alias tomcatTest 在生成.keystore的別名-storepass 訪問.keystore 的密碼-file certreq.csr 生成證書請求存放的文件在e:myServerCert目錄下找到certreq.csr 文件用文本編輯器(如notepad.exe、ultraedit.exe)打開(注意千萬不要改變其中的內容或用word等帶有一定格式的字處理軟件編輯或存儲以上信息。)文件內容類似如下:-BEGIN NEW CERTIFICATE REQUEST-MIIBqjCCARMCAQAwajELMAkGA1UEBhMCQ04
11、xEjAQBgNVBAgTCWd1YW5nZG9uc2hlbnpoZW4xDzANBgNVBAoTBmJ5dHRlcjEPMA0GA1UECxMGYnl0dGVyMRIwEAYMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALKNsefgVD4KhkgKfYPP7ctq4wMqR807Q+joeqqu78hwD4Dd8I4R7Fg6pl6GGMhuOVG+s7j59Qf+s9pdUM/Sj5exIM5skhiYSsIgsDWMY/mMl2u212AeNKxR2bzRrWtT0OUv1yHvCmE6CmifqKce51R3AgBgkqhkiG9w0BAQ
12、QFAAOBgQBOq79Rhmt2yo1B2ezUBAv6ieyMLGvYxDID/+SU8UpKw0rpdpPEQjOPKDnQW1gXyU5zxheWMCh7K4p/r2NNf2cvzs3hGvESwx2/cjDo2q246EoZqy/LfaUqDbvqCEVS29Z/0tL+h6GEcsQU+/P6wVvOZ0MFA=-END NEW CERTIFICATE REQUEST-Ø 登陸到CFCA網(wǎng)站提交證書請求,下載證書得Web Server證書的參考號和授權碼后,訪問CFCA統(tǒng)一下載平臺(生產系統(tǒng)進入界面后,如果沒有下載CA證書鏈的話,可以在該頁面上先點擊下載證書鏈(詳細介紹
13、見本章4.2),然后點擊“Web服務器證書下載”選擇“接受此協(xié)議”進入下載界面,輸入?yún)⒖继柡褪跈啻a,并在“選項”中選擇返回的證書的數(shù)據(jù)格式。例如選擇DER(默認的方式),把前面得到的PKCS#10格式證書請求(certreq.csr中的內容)粘貼到下面的文本框。提交該表單,證書將被產生并返回。保存證書到指定目錄,證書申請完成 5、安裝下載CFCA測試證書鏈在在證書下載平臺(測試系統(tǒng):7/,生產系統(tǒng)下載根證書鏈(將CFCA ROOT CA及CFCA OPERATION CA2下的內容分被保存為文件),即獲得b_Cert.zip或者直接在CFCA網(wǎng)站上下載證書鏈(
14、選擇APACHE用戶下載): 解壓b_Cert.zip(生產系統(tǒng))后,可以看到文件Root_CA.cer,Operation_CA2.cer。解壓b_Tcerts.zip(測試系統(tǒng))后,可以看到文件CFCARCA.cer,CFCATESTCA.cer。以生產系統(tǒng)為例:Ø 導入可信任的根證書到你的.keystore文件中java_home%binkeytool -import -alias root storepass changeit -keystore java_home% jrelibsecuritycacerts -trustcacerts -file C:Downloadsb
15、_TcertsRoot_CA.cer(如果是測試系統(tǒng)就是CFCARCA.cer)Ø 導入可信任的中級證書到你的.keystore文件中java_home%binkeytool -import -alias ca2 storepass changeit -keystore % java_home% jrelibsecuritycacerts -trustcacerts -file C:Downloadsb_Tcerts Operation_CA2.cer(如果是測試系統(tǒng)就是CFCATESTCA.cer)Ø 導入剛申請的服務器證書到你的.keystore文件中java_home
16、%binkeytool -import -alias tomcatTest -storepass lxz2003 -keystore e:myServerCertserverKey.keystore -trustcacerts -file e:myServerCertservercert.cer注意:-storepass、-keystore后面的參量與導入CA證書的時候不同!Ø 驗證keystore 中的key pairs 和CA的有效性java_home%binkeytool -list v -alias tomcatTest storepass lxz2003 -keystore
17、 e:myServerCertserverKey.keystore屏幕輸出如下,圖十。圖十6、配置服務器(TOMCAT)開啟SSL服務6.1 修改tomcat配置文件server.xml打開TOMCAT安裝目錄的confserver.xml文件找到如下文本,取消注釋,添加下面的紅色標注內容:<!- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -><Connector className="org.apache.coyote.tomcat4.CoyoteConnector"port="84
18、43" minProcessors="5" maxProcessors="75"enableLookups="true"acceptCount="100" debug="0" scheme="https" secure="true"useURIValidationHack="false" disableUploadTimeout="true"><Factory className="o
19、rg.apache.coyote.tomcat4.CoyoteServerSocketFactory"clientAuth="true" protocol="TLS" keystoreFile="e:myServerCertserverKey.keystore" keystorePass="證書庫密碼" /></Connector>TOMCAT5.5按照如下配置:<!- Define a SSL Coyote HTTP/1.1 Connector on port 8443 ->
20、;<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
21、160; enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true"
22、; clientAuth="true" sslProtocol="TLS" truststoreFile="H:cfcaratrust.keystore"證書鏈文件,相當于前文的cacerts文件。
23、160; truststorePass="證書鏈文件密碼" keystoreFile="H:cfcaraserverssl.keystore" 服務器證書文件,相當于前文的serverKey.keystore文件
24、 keystorePass="服務器證書文件密碼" > </Connector>由于tomcat不同版本在配置服務器證書的部分有可能有不同,所以把我們已知的tomcat版本配置的情況補充在附錄,作為參考。clientAuth="true":要求客戶端必須出示證書,雙向SSL;clientAuth="want":客戶端可以出示證書也可以選擇不出示證書,單雙向SSL;clientAuth="true":客戶端無須出示證
25、書,單向SSL。注意訪問端口為 84436.2 測試服務器證書是否成功安裝重新啟動TOMCAT,打開IE瀏覽器在地址欄內輸入::8443/index.jsp出現(xiàn)如下頁面表示TOMCAT服務器證書配置成功,圖十一圖十一圈選部分雙擊可顯示證書信息。如果在TOMCAT的server.xml配置中將clientAuth="false"改為“true”,則客戶端必須申請客戶端證書,如沒有客戶端證書則被拒絕訪問(最好設置為true)顯示如下頁面,圖十二。圖十二7附錄由于tomcat不同版本在配置服務器證書的部分有可能有不同,所以把我們已知的tomcat版
26、本配置的情況補充在此,作為參考。7.1 Tomcat6.0 SSL的配置1. 參考:Tomcat 6.0 自帶的文檔docs/ssl-howto.html,詳細介紹了配置過程。2. 目的: 以下詳細描述配置過程,僅作為備忘錄。3. 備忘錄:Step1,安裝tomcat 6.0.18,此為當前最新版本,需JDK5.0或以上。l JDK安裝后,可以在命令行下使用如下命令檢測是否成功。C:Documents and Settingsnew>java -versionjava version "1.6.0_10"Java(TM) SE Runtime Environment
27、(build 1.6.0_10-b33)Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)看到以上藍色信息,則表示JDK安裝配置成功。l Tomcat的運行需要配置JDK_HOME和JRE_HOME環(huán)境變量,JRE_HOME默認等于JDK_HOME的值。Step2,創(chuàng)建服務器端certificate keystore和自簽名certificate。 在命令行下使用如下命令:C:Documents and Settingsnew>keytool -genkey -alias mykey -keyalg RSA -
28、keystore server.keystore輸入keystore密碼:123456再次輸入新密碼:123456您的名字與姓氏是什么? Unknown: dinstone您的組織單位名稱是什么? Unknown: advance software ltd.您的組織名稱是什么? Unknown: china您所在的城市或區(qū)域名稱是什么? Unknown: beijing您所在的州或省份名稱是什么? Unknown: beijing該單位的兩字母國家代碼是什么 Unknown: cnCN=dinstone, OU=advance software ltd., O=china, L=beijing
29、, ST=beijing, C=cn 正確嗎? 否: y 輸入<mykey>的主密碼 (如果和 keystore 密碼相同,按回車):在C:Documents and Settingsnew下可以找到一個文件:server.keystore,其中就包含了自簽名的證書。注意: 這里要求certificate keystore 和certificate的密碼一致,此為Tomcat的約束。Step3,在%TOMCAT_HOME%目錄下新建目錄keystore,并拷貝server.keystore到其目錄下。Step4,修改%TOMCAT_HOME%/conf/server.xml文件。添
30、加https的Connector。<Connector port="8443" minSpareThreads="5" maxSpareThreads="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="keystore/server.keystore" keystorePass="123456" clientAuth="false" sslP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國汽車物聯(lián)網(wǎng)行業(yè)運營模式及未來發(fā)展趨勢預測報告
- 2024-2030年中國汽車整車設計行業(yè)發(fā)展模式及投資前景預測報告
- 2024-2030年中國汽車發(fā)電機調節(jié)器行業(yè)前景預測與投資戰(zhàn)略規(guī)劃分析報告
- 2024年PCP項目提案報告
- 2019-2020學年九年級化學全冊-第十一單元-化學與社會發(fā)展綜合檢測題含解析-魯教版
- 幕墻施工安全防護措施方案
- 工地工人防疫核酸檢測方案
- 2023年柔性制造單元(FMC)項目評估分析報告
- CT、MR設備保養(yǎng)流程優(yōu)化方案
- 雙減政策下的物理作業(yè)減負方案
- 三年級硬筆書法課件
- 2024全球量子產業(yè)發(fā)展報告
- 場地移交安全管理協(xié)議書
- 醫(yī)院卒中中心建設各種制度、流程匯編
- 重慶市江北區(qū)2023-2024學年六年級下學期期末考試數(shù)學試題
- 軍隊文職聘用合同管理規(guī)定
- 2024年貴州省安順市西秀區(qū)小升初語文試卷
- 新時代鐵路發(fā)展面對面全文內容
- 人工智能與語文閱讀理解教學
- 科學素養(yǎng)培育及提升-知到答案、智慧樹答案
- 快遞主管崗位職責
評論
0/150
提交評論