在tomcat中配置SSL 基礎學習筆記

2021-07-24 13:00:24 字數 1904 閱讀 2184

一、ssl簡介

1、什麼是ssl?

ssl(server socket layer)是一種保證網路上的兩個節點進行安全通訊的協議.

ietf(internet engineering task force)組織了對ssl做了標準化,制定了rfc2246規範,稱為tls(transport layer security).

2、ssl和tls建立在tcp/ip協議的基礎上

ssl採用加密技術來實現安全通訊,保證通訊資料的保密性和完整性,並且保證通訊雙方可以驗證對方的身份。

3、加密通訊

加密技術的原理:資料從一端傳送到另一端時,傳送者先對資料加密,然後再發給接收者。這樣,在網路上傳輸的是經過加密的資料。接受者接收到加密的術後,先對資料解密,然後再處理。

4、安全證書

ssl除了對資料加密通訊,還採用了身份認證機制,確保通訊雙方都可以驗證對方的真實身份。

ssl通過安全證書來證明客戶或伺服器的身份。

獲取安全證書的有兩種方式,一種方式從權威機構購買證書,還有一種方式是建立自我簽名的證書。

4.1從權威機構獲取證書

由國際權威證書機構(certificate authority,ca)如verisign(www.versign.com)或thawte(www.thawte.com)頒發。乙個安全證書只對乙個ip位址有效,如果使用者的系統環境中有多個ip位址,那麼必須為每乙個ip位址購買安全證書。

4.2建立自我簽名證書

只需關心資料在網路上安全傳輸,,並不需要對方進行身份驗證。在這種情況下,可建立自我簽名(self-assign)的證書,比如sun公司的keytool工具就可以建立。

5、ssl握手

安全證書既包含了用於加密資料的金鑰,又包含了用於證實身份的數字簽名。公鑰加密是指使用一對非對稱的金鑰進行加密或解密。每一對金鑰由公鑰和私鑰組成。用公鑰加密的資料只能用私鑰 解密,反過來,私鑰加密的資料只能被公鑰解密。

安全證書包含了這一非對稱的金鑰。

客戶和伺服器通訊,首先進行ssl握手,主要完成以下任務:

a、協商使用的加密套件。加密套件包括一組加密引數,這些引數置頂了加密演算法和金鑰的長度等資訊。

b、驗證對方的身份,此操作是可選的。

c、確定使用的加密演算法。

ssl流程如下:

(1)客戶將自己的ssl版本號、加密引數、與ssl會話有關的資料及其他一些必要資訊傳送到伺服器。

(2)伺服器將自己的ssl版本號、加密引數、與ssl會話有關的資料及其他一些必要資訊傳送給客戶,同時包括伺服器的證書,如果需要驗證客戶身份,還會發出要求客戶提供安全證書的請求。

(3)客戶端驗證伺服器證書,如果失敗,就提示不能簡歷ssl鏈結,如果成功則進行下一步。

(4)客戶端為本次ssl會話生成預備主密碼(pre-master secret),並將其伺服器公鑰加密後傳送給伺服器。

(5)如果伺服器要求驗證客戶身份,客戶端還要再對另外一些資料簽名後,將其與客戶端證書一起傳送給伺服器。

(6)如果伺服器要求驗證客戶身份,則檢查簽署客戶證書的ca是否可信。如果不在信任列表,結束本次對話。如果檢查通過,伺服器用自己的私鑰解密收到的預備主密碼,並用他通過某些演算法生成本次會話的主密碼(master-secret).

(7)客戶端與伺服器均使用此主密碼生成本次會話的金鑰(對稱金鑰),在雙方ssl握手結束後傳遞任何訊息均使用此會話金鑰。這樣做的主要原因是對稱比非對稱的運算量低乙個數量級以上,能夠提高雙方會話時的運算速度。

(8)客戶端通知伺服器此後傳送的訊息都使用這個會話金鑰進行加密,並通知伺服器客戶端已經完成本次ssl握手。

(9)伺服器通知客戶端此後傳送的訊息都使用這個會話金鑰進行加密,並通知客戶端伺服器已經完成本次ssl握手

(10)本次握手結束,ssl會話建立。

以上的很多文字其實可以用乙個簡單的圖搞定的,可是,沒找到畫圖的工具,下次再傳吧。。。

ssl在tomcat 中的配置

1.配置 tomcat 開啟 catalina home conf server.xml 修改如下,connectiontimeout 20000 redirectport 8443 修改引數 connectiontimeout 20000 redirectport 443 去掉注釋且修改引數 注釋...

在tomcat上配置SSL

轉到jdk的bin目錄,執行下面的命令 keytool genkey alias tomcat keyalg rsa keystore h websrever tomcat conf keystore 並且按照提示填寫 紅色部分為證書的路徑 找到tomcat conf server.xml檔案,並且...

tomcat實現SSL配置

開啟server.xml檔案,開啟define a ssl http 1.1 connector on port 8443,刪除登出資訊。修改節點 具體如下 keystorefile的路徑是tomcat的安裝路徑下的tomcat.keystore 使用keytool生成的證書庫檔案 keytool ...