




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Android HttpClient 訪問 Tomcat雙向SSL驗證服務(wù)器項目需要,在Android WebView上訪問Tomcat SSL雙向驗證。本文只解決了Android HttpClient 訪問Tomcat雙向SSL驗證服務(wù)器。環(huán)境準(zhǔn)備:l Windows 2003 EE;l OpenSSL;l Tomcat 7;過程記錄如下:1.用OpenSSL和keytools做CA,Client,Server的證書、私鑰。2.搭建Tomcat的雙向驗證的Web服務(wù)器。3.用IE驗證SSL的雙向驗證的有效性。上面的三步參見文檔: tomcat下https ssl 雙向認證唯一的問題是:Tomcat7的配置不同。server.xml 加入如下XML代碼: keystorePass 是自己server_keystore的密碼 單向驗證把clientAuth=true 修改為false4.編寫Android的SSL驗證程序,但只能做到單向驗證服務(wù)器的證書。 Android OpenSSL分析及實例 - zhenyongyuan123的專欄5.編寫Java版本的Client/Server程序驗證SSL的雙向驗證。 java實現(xiàn) SSL雙向認證 6.為了了解SSL的握手過程,測試用OpenSSL命令行直接驗證Tomcat的SSL雙向驗證過程。 用openssl連接TomCat SSL雙向驗證的命令行。view plaincopy to clipboardprint?01.openssl s_client -connect localhost:8443 -cert clientclient-cert.pem -key clientclient-key.pem -CAfile caca-cert.pem -state openssl s_client -connect localhost:8443 -cert clientclient-cert.pem -key clientclient-key.pem -CAfile caca-cert.pem -state7.通過上面的過程,發(fā)現(xiàn)了步驟4的問題所在,解決了Android訪問TomCat的雙向SSL驗證的WEB服務(wù)器。8.最有一步,直接用Android 的WebView訪問Tomcat的雙向SSL服務(wù)器,正在研究中. 可能需要修改WebView的源碼,研究完成單獨書寫文檔表述實現(xiàn)方法。tomcat下https ssl 雙向認證 一、配置環(huán)境1.1 Tomcat簡介Tomcat是Apache Jakarta的子項目之一,作為一個優(yōu)秀的開源web應(yīng)用服務(wù)器,全面支持jsp1.2以及servlet2.3規(guī)范。因其技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的web應(yīng)用服務(wù)器。1.2 SSL(Server Socket Layer)簡介在網(wǎng)絡(luò)上信息在源-宿的傳遞過程中會經(jīng)過其它的計算機。一般情況下,中間的計算機不會監(jiān)聽路過的信息。但在使用網(wǎng)上銀行或者進行信用卡交易的時候有可能被監(jiān)視,從而導(dǎo)致個人隱私的泄露。由于Internet和Intranet體系結(jié)構(gòu)的原因,總有某些人能夠讀取并替換用戶發(fā)出的信息。隨著網(wǎng)上支付的不斷發(fā)展,人們對信息安全的要求越來越高。因此Netscape公司提出了SSL協(xié)議,旨在達到在開放網(wǎng)絡(luò)(Internet)上安全保密地傳輸信息的目的,這種協(xié)議在WEB上獲得了廣泛的應(yīng)用。 之后IETF()對SSL作了標(biāo)準(zhǔn)化,即RFC2246,并將其稱為TLS(Transport Layer Security),從技術(shù)上講,TLS1.0與SSL3.0的差別非常微小。1.3 SSL工作原理SSL協(xié)議使用不對稱加密技術(shù)實現(xiàn)會話雙方之間信息的安全傳遞??梢詫崿F(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é)束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數(shù)量級以上,能夠顯著提高雙方會話時的運算速度。 8. 客戶端通知服務(wù)器此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。 9. 服務(wù)器通知客戶端此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手。 10. 本次握手過程結(jié)束,會話已經(jīng)建立。雙方使用同一個會話密鑰分別對發(fā)送以及接受的信息進行加、解密。1.4 所需軟件包Tomcat 4.0.6用途:Web Server。下載:/builds/jakarta-tomcat-4.0/release/v4.0.6/bin/jakarta-tomcat-4.0.6.exeJDK1.4.1_02其中已經(jīng)包含了JSSE的最新版本。JSSE 1.0.3_01用途:用來產(chǎn)生Tocmcat使用的密鑰對(keystore)。下載: /products/jsse/Openssl 0.9.7b用途:用來產(chǎn)生CA證書、簽名并生成IE可導(dǎo)入的PKCS#12格式私鑰。下載:/1.5 軟件包的安裝 Tomcat 4.0.6安裝(略)JSSE 1.0.3_01安裝1. 確定有JDK1.2以上版本(java -version);2. 下載JSSE (注意,JDK1.4已經(jīng)自帶JSSE了,不需要),一般來說都只能download全球版本(還有個版本是美國/加拿大版本,加密位數(shù)沒有限制);3. 安裝JSSE,主要是把JSSE包內(nèi)的lib/*.jar拷貝到JAVA_HOME/jre/lib/ext/下,并且加入到CLASSPATH中;4. 編輯JAVA_HOME/jre/lib/security/java.security文件,主要是添加: vider.1=vider.Sun vider.2=ernal.ssl.Provider5. 確定你的系統(tǒng)有下面文件的其中一個:1)JAVA_HOME/jre/lib/security/jssecacerts或者 2)JAVA_HOME/jre/lib/security/cacerts 你的系統(tǒng)已經(jīng)安裝好了JSSE,下面就是針對不同的server有不同的配置了。Openssl 0.9.7b安裝請閱讀其解壓縮文檔中的INSTALL文件安裝openssl?;蛘呖梢詤⒖嘉募皁penssl在windows平臺的安裝編譯.txt”。二、配置步驟2.1 建立自己的CA證書(假設(shè)openssl安裝到了c:openssl)1在適當(dāng)?shù)牡胤浇⒆约旱腃A目錄,例如:ca2. 我的電腦-右鍵-屬性-高級-環(huán)境變量-新建-administrator用戶變量-變量名:OPENSSL_CONF-變量值:C:f2生成CA密鑰openssl genrsa -out ca/ca-key.pem 1024genrsa 產(chǎn)生密鑰命令 out密鑰文件輸出路徑 1024 密鑰位數(shù)3生成待簽名的證書openssl req -new -out ca/ca-req.csr -key ca/ca-key.pemreq產(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 365x509簽發(fā)x509證書命令-req輸入待簽發(fā)證書-in輸入待簽發(fā)證書文件路徑-out產(chǎn)生x509證書文件輸出路徑-signkey自簽發(fā)密鑰文件路徑-days證書有效期CA簽發(fā)跟證書-Cakey根證書密鑰文件 -CAcreateserial創(chuàng)建序列號2.2 配置Tomcat 4.X2.2.1建立服務(wù)器證書注 在本文中用符號%JDK_HOME%來表示JDK的安裝位置,用符號%TCAT_HOME% 表示Tomcat的安裝位置。1.建立工作目錄在目錄下建立自己的server目錄,例如:server2.生成server密鑰對C:j2sdk1.4.1_01binkeytool -genkey -alias tomcat -validity 365 -keyalg RSA -keysize 1024 -keystore server/server_keystore -genkey產(chǎn)生密鑰對-alias密鑰對別名-validity密鑰有效期-keyalg密鑰算法參數(shù)-keysize密鑰位數(shù)-keypass密鑰保護密碼-storepass存儲密碼-dname別名相關(guān)附加信息-keystore密鑰存儲文件路徑注 -alias后的tomcat是密鑰對的名字可替換為自己需要的名字;-keypass與-storepass后的密碼為保護密碼必須6位;其中cn是服務(wù)器的名字一定要與WEB服務(wù)器中設(shè)置的一樣。3.生成待簽名證書C:j2sdk1.4.1_01binkeytool -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密鑰保護密碼-keystore存儲文件路徑-storepass存儲密碼4.拷貝C:opensslappsca-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)入Tomcat1. 導(dǎo)入CA根證書C:j2sdk1.4.1_01binkeytool -import -v -trustcacerts -storepass allcom -alias allcom_ca_root -file ca/ca-cert.pem -keystore server/cacerts-import導(dǎo)入命令 -vtrustcacerts導(dǎo)入信任證書 storepass存儲密碼-alias證書別名-file證書文件路徑-keystore導(dǎo)入文件路徑-alias為CA根證書的別名。2.拷貝cacerts文件到C:j2sdk1.4.1_01jrelibsecurity目錄3.導(dǎo)入服務(wù)器證書C:j2sdk1.4.1_01binkeytool -import -v -trustcacerts -storepass allcom -alias tomcat -file server/server-cert.pem -keystore server/server_keystore注 此時的-storepass為生成證書時輸入密碼。-alias為服務(wù)器證書的別名。4.查看證書查看CA證書C:j2sdk1.4.1_01binkeytool -list -keystore server/cacerts查看服務(wù)器證書C:j2sdk1.4.1_01binkeytool -list -keystore server/server_keystore2.2.3修改Tomcat的配置文件1.把文件server/ server_keystore復(fù)制到目錄%TCAT_HOME%/conf下2.修改conf目錄下server.xml文件找到以下內(nèi)容去掉其注釋并修改。2.3 配置IE客戶端2.3.1建立Client證書1.建立自己的Client目錄,例如:client2.生成Client密鑰對openssl genrsa -out client/client-key.pem 10243.生成待簽名的證書openssl req -new -out client/client-req.csr -key client/client-key.pem4.用CA私鑰簽名openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-ce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合肥騎行活動方案
- 同城配送活動方案
- 同學(xué)踏青活動方案
- 名人調(diào)解活動方案
- 崗位安全知識普及與培訓(xùn)
- 聽課記錄幼兒活動方案
- 吳起縣公祭活動方案
- 告別秋天活動方案
- 員工內(nèi)推活動方案
- 雙語特色活動方案
- 2025年人教版小學(xué)數(shù)學(xué)三年級下冊期末考試卷(帶答案)
- 國家開放大學(xué)電大《國際私法》形考任務(wù)1-5題庫及答案
- 2025年山西焦煤西山煤電集團招聘筆試參考題庫含答案解析
- 山東省濟南市歷城區(qū)2023-2024學(xué)年七年級下學(xué)期期末語文試題(解析版)
- 零碳園區(qū)解決方案
- 蘇教版六年級科學(xué)下冊單元測試卷及答案(全冊)
- 如何審議預(yù)算及其報告新演示文稿
- 融資并購項目財務(wù)顧問協(xié)議賣方大股東為個人模版
- 北京市朝陽區(qū)2020-2021學(xué)年五年級下學(xué)期期末考試語文試卷(含答案解析)
- 初二物理上冊各章知識點廣州人教版
- 未達交付條件的房屋拒收函
評論
0/150
提交評論