卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

SSL 通信原理及Tomcat SSL 雙向配置

SSL 通信原理及Tomcat SSL 雙向配置目錄1 參考資料 ...................................................................

SSL 通信原理及Tomcat SSL 雙向配置

目錄

1 參考資料 .................................................................................................................................. 1 2 SSL(Server Socket Layer)簡介 ................................................................................................... 2

2.1 工作原理 ....................................................................................................................... 2

2.2 SSL 的具體流程圖: .................................................................................................... 4

2.3 SSL 通訊示意圖 ............................................................................................................ 5

2.4 SSL 通訊說明 ................................................................................................................ 5

3 keytool 安全證書學習 ............................................................................................................. 6

3.1 驗證是否已創(chuàng)建過同名的證書 ................................................................................... 6

3.2 刪除已創(chuàng)建的證書 ....................................................................................................... 6

3.3 創(chuàng)建證書 ....................................................................................................................... 6

3.4 常出現(xiàn)的異常: ........................................................................................................... 7

3.4.1 Keytool 是一個Java 數(shù)據(jù)證書的管理工具。 ................................................. 7

4 為tomcat6 批量生成安全證書 ............................................................................................... 8

4.1.1 第一步:為服務器生成證書 ........................................................................... 8

4.1.2 第二步:為客戶端生成證書 ........................................................................... 9

4.1.3 第三步:讓服務器信任客戶端證書 ............................................................... 9

4.1.4 第四步:配置Tomcat 服務器 ......................................................................... 9

4.1.5 第五步:導入客戶端證書 ............................................................................. 10

,

4.1.6 第六步: 導出服務器證書給客戶端 .............................................................. 10

4.1.7 第七步:將導入server.cer ,為客戶端 創(chuàng)建定制密鑰庫. ............................ 11

4.1.8 第八步:創(chuàng)建Java 客戶端訪問: ...................................................................... 11

4.1.9 測試訪問: ........................................................................................................ 12

4.1.10 SSL 證書錯誤信息 .......................................................................................... 12

5 說明: ...................................................................................................................................... 13

6 不同格式證書導入keystore 方法 ......................................................................................... 13

6.1 Java KeyStore 的類型 .................................................................................................. 14

6.2 證書導入 ..................................................................................................................... 14

6.2.1 Der/Cer 證書導入: ....................................................................................... 14

6.2.2 P12 格式證書導入: ...................................................................................... 15

6.3 P7B 格式證書導入: ................................................................................................. 16

6.4 總結:............................................................................................................................ 16

1 參考資料

本文部分內容來源于網(wǎng)絡,目的是介紹某些工具及技術的使用與原理。

其中Tomcat 的配置測試及Webservcie 客戶端的調用。經(jīng)過實戰(zhàn)測試,

客戶端調用Webservice 采用Xfire 框架。僅提供了代碼片段。

,

2 SSL(Server Socket Layer)簡介

2.1 工作原理

1、SSL 協(xié)議使用不對稱加密技術實現(xiàn)會話雙方之間信息的安全傳遞??梢詫崿F(xiàn)信息傳 遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的http 協(xié)議,我們在與 網(wǎng)站建立SSL 安全連接時使用https 協(xié)議,即采用https://ip:port/的方式來訪問。 當我們與一個網(wǎng)站建立https 連接時,我們的瀏覽器與Web Server 之間要經(jīng)過一個握手 的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下:

用戶瀏覽器將其SSL 版本號、加密設置參數(shù)、與session 有關的數(shù)據(jù)以及其它一些必要 信息發(fā)送到服務器。

服務器將其SSL 版本號、加密設置參數(shù)、與session 有關的數(shù)據(jù)以及其它一些必要信息 發(fā)送給瀏覽器,同時發(fā)給瀏覽器的還有服務器的證書。如果配置服務器的SSL 需要驗證用戶

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

客戶端檢查服務器證書,如果檢查失敗,提示不能建立SSL 連接。如果成功,那么繼續(xù)。 客戶端瀏覽器為本次會話生成pre ‐master secret,并將其用服務器公鑰加密后發(fā)送給服 務器。

如果服務器要求鑒別客戶身份,客戶端還要再對另外一些數(shù)據(jù)簽名后并將其與客戶端證 書一起發(fā)送給服務器。

如果服務器要求鑒別客戶身份,則檢查簽署客戶證書的CA 是否可信。如果不在信任列 表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的pre ‐master secret,

,

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

客戶端與服務器均使用此master secret 生成本次會話的會話密鑰(對稱密鑰) 。在雙方SSL 握手結束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的 運算量低一個數(shù)量級以上,能夠顯著提高雙方會話時的運算速度。

客戶端通知服務器此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知服務器客戶端 已經(jīng)完成本次SSL 握手。

服務器通知客戶端此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知客戶端服務器 已經(jīng)完成本次SSL 握手。

本次握手過程結束,會話已經(jīng)建立。雙方使用同一個會話密鑰分別對發(fā)送以及接受的信 息進行加、解密。

2、SSL(Secure Socket Layer)是一種通信交互協(xié)議,由Netscape 公司在1994 年制定,主

要目的就是確保在web 服務器和瀏覽器之間數(shù)據(jù)傳輸安全。SSL 協(xié)議層是在TCP/IP 層和應

用層之間。當前TLS(Transport Layer Security)正在逐漸替代SSL(最新版本v3) 。 SSL 協(xié)議分成以下幾部分:

,

Record Protocal 是SSL 的基礎層,SSL 所有的上層操作都是基于這個層次,這層主要負責消

息內容的分段,壓縮,加密和數(shù)字摘要等操作。

Handshake Protocal 故名思義就是握手協(xié)議,也是在正式應用數(shù)據(jù)傳輸前雙方交換加密 設置以及認證的流程規(guī)范協(xié)議。

Change Cipher Spec Protocol 是基于record 協(xié)議層通知遠端服務器修改record 協(xié)議層中

安全設置的協(xié)議。

Alert Protocol 是基于record 協(xié)議發(fā)送警告到遠端服務器的協(xié)議。

2.2 SSL 的具體流程圖:

,

SSL

的流程也體現(xiàn)了對于對稱性密鑰和非對稱性密鑰的使用,由于對稱性密鑰加密比非對稱

性密鑰加密要快1000 倍,那么對稱性密鑰被用來做對內容的加密,而非對稱性密鑰用來

,

傳遞對稱性密鑰的加密手段。

服務端所需要具備的是一個擁有服務端的標示,公鑰私鑰對的證書。在握手的流程中, 服務端將帶有公鑰的證書抽取出來發(fā)送給客戶端,客戶端就首先可以判斷證書頒發(fā)者是否屬 于本機受信的CA ,如果不是,就會類似于IE 跳出提示,如果通過了這部分CA 認證,雙方

就可以通過非對稱性加密算法來交換客戶端生成的臨時對稱密碼,進行安全加密信息交互。

2.3 SSL 通訊示意圖

,

2.4 SSL 通訊說明

在該部分,將上圖所示的示意圖進行說明。為了說明的方便,在本文中稱客戶端為B ,服務 器端為S 。

STEP 1: B——〉S (發(fā)起對話,協(xié)商傳送加密算法)

你好,S !我想和你進行安全對話,我的對稱加密算法有DES,RC5,我的密鑰交換算法有 RSA 和DH ,摘要算法有MD5 和SHA 。

STEP2: S——〉B (發(fā)送服務器數(shù)字證書)

你好,B !那我們就使用DES -RSA -SHA 這對組合進行通訊,為了證明我確實是S ,現(xiàn)在 發(fā)送我的數(shù)字證書給你,你可以驗證我的身份。

STEP 3: B——〉S (傳送本次對話的密鑰)

(檢查S 的數(shù)字證書是否正確,通過CA 機構頒發(fā)的證書驗證了S 證書的真實有效性后。 生成了利用S 的公鑰加密的本次對話的密鑰發(fā)送給S )

S, 我已經(jīng)確認了你的身份,現(xiàn)在將我們本次通訊中使用的對稱加密算法的密鑰發(fā)送給 你。

STEP4: S——〉B (獲取密鑰)

(S 用自己的私鑰解密獲取本次通訊的密鑰)。

B, 我已經(jīng)獲取了密鑰。我們可以開始通信了。

STEP5: S<——>B(進行通訊)

說明:一般情況下,當B 是保密信息的傳遞者時,B 不需要數(shù)字證書驗證自己身份的真 實性,如電子銀行的應用,客戶需要將自己的賬號和密碼發(fā)送給銀行,因此銀行的服務器需 要安裝數(shù)字證書來表明自己身份的有效性。在某些B2B 應用,服務器端也需要對客戶端的

,

身份進行驗證,這時客戶端也需要安裝數(shù)字證書以保證通訊時服務器可以辨別出客戶端的身 份,驗證過程類似于服務器身份的驗證過程。

此外需要說明的是,在一些電子商務的應用中,可能還會使用到電子簽名,或者為了信 息交換的更加安全,會增加電子簽名和消息校驗碼(MAC )。

為了便于了解SSL ,下面在簡要介紹一下信息加密相關知識。使用密鑰類型加密信息的加密 算法可以分為以下幾類:HASH 編碼、對稱加密和非對稱加密三類。

HASH 編碼是使用HASH 算法從任意長度的消息中計算HASH 值的一個過程,HASH 值可

以說是消息的指紋,因為對于任何不同的消息,幾乎總有不同的HASH 值。因此在SSL 通訊

過程中,可以對消息的HASH 值進行加密,確保傳遞的消息在傳輸過程中沒有被修改。 非對稱加密或稱之為公鑰加密使用數(shù)學上相關的兩個數(shù)值來對信息進行編碼(加密), 其中一個數(shù)字稱為公鑰,另一個稱為私鑰。公鑰加密的信息可以用私鑰解密,私鑰加密的信 息可以用公鑰解密。由于公鑰可以大面積發(fā)放,因此公鑰加密在SSL 加密通信中應用于對密

鑰的加密或者進行數(shù)字簽名。

對稱加密和非對稱加密相比的區(qū)別在于對稱加密中,加密信息和解密信息使用同樣的密 鑰,因此該密鑰無法公開。但是其具有加密、解密快速的特點。

在SSL 通訊中,首先采用非對稱加密交換信息,使得服務器獲得瀏覽器端提供的對稱加 密的密鑰,然后利用該密鑰進行通訊過程中信息的加密和解密。為了保證消息在傳遞過程中 沒有被篡改,可以加密HASH 編碼來確保信息的完整性。

,

3 keytool 安全證書學習

3.1 驗證是否已創(chuàng)建過同名的證書

keytool -list -v -alias tomcat -keystore "JAVA_HOME/JRE/LIB/SECURITY/CACERTS" -storepass changeit

3.2 刪除已創(chuàng)建的證書

keytool -delete -alias tomcat -keystore

"JAVA_HOME/JRE/LIB/SECURITY/CACERTS" -storepass changeit

3.3 創(chuàng)建證書

1. 服務器中生成證書:(注:生成證書時,CN 要和服務器的域名相同,如果在本地測試,則使用localhost)

keytool -genkey -alias tomcat -keyalg RSA -keystore d:mykeystore -dname

"CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -

storepass changeit

2. 導出證書,由客戶端安裝:

標簽: