Tomcat實現HTTPS SSL訪問

2021-07-03 09:26:10 字數 2229 閱讀 8662

一、https協議需要到ca申請證書,一般免費證書很少,需要交費。

二、http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。

三、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

四、http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

有兩種基本的加解密演算法型別:

1)對稱加密:金鑰只有乙個,加密解密為同乙個密碼,且加解密速度快,典型的對稱加密演算法有des、aes等;

2)非對稱加密:金鑰成對出現(且根據公鑰無法推知私鑰,根據私鑰也無法推知公鑰),加密解密使用不同金鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密演算法有rsa、dsa等。

2.2 https通訊的優點

1)客戶端產生的金鑰只有客戶端和伺服器端能得到;

2)加密的資料只有客戶端和伺服器端才能得到明文;

3)客戶端到服務端的通訊是安全的。

加密過程:

在https的通訊過程中,組合使用了公用金鑰方式加密和共享金鑰方式加密這兩種技術。公用金鑰方式要比共享金鑰方式慢得多,因此使用公用金鑰來完成共享金鑰的交換。公用金鑰是從證書中獲得的。拿到共享金鑰之後,所有的內容之間的通訊都會使用共享金鑰來進行加密和解密。公用金鑰的作用就是為了安全的交換共享金鑰,共享金鑰是用來通訊內容的加密和解密。這樣既確保了通訊之間的安全,也確保了加密和解密的效率。

為netscape所研發,用以保障在internet上資料傳輸之安全,利用資料加密(encryption)技術,可確保資料在網路上之傳輸過程中不會被擷取及竊聽。目前一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之i.e.或netscape瀏覽器即可支援ssl。

當前版本為3.0。它已被廣泛地用於web瀏覽器與伺服器之間的身份認證和加密資料傳輸。

ssl協議位於tcp/ip協議與各種應用層協議之間,為資料通訊提供安全支援。ssl協議可分為兩層:ssl記錄協議(ssl record protocol):它建立在可靠的傳輸協議(如tcp)之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。ssl握手協議(ssl handshake protocol):它建立在ssl記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

連線分為兩個階段,即握手和資料傳輸階段。

握手階段對伺服器進行認證並確立用於保護資料傳輸的加密金鑰。必須在傳輸任何應用資料之前完成握手。一旦握手完成,資料就被分成一系列經過保護的記錄進行傳輸。

3.2 ssl協議主要提供的服務

1)認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器

2)加密資料以防止資料中途被竊取

3)維護資料的完整性,確保資料在傳輸過程中不被改變。

4.1 利用jdk生成建立使用者安全證書

建立成功後的檔案

4.2 修改tomcat的server.xml檔案

4.3啟動tomcat並測試https配置是否成功

如上圖,可以看到https可以開啟,以下分別是在ie、firefox開啟效果:

ie說:證書還有問題,位址列右上角有提示。

firefox也可以開啟開到效果,不過如果是真實專案的訪問,必須要安全證書通過驗證才行,下面是我允許不用安全模式進入系統的效果:

動手實現Tomcat

版本一 無區分靜態資源 如demo.html 一 需求描述 二 整體示意圖 三 實現 專案工程 服務端的工作都在testserver類中完成 1.服務端的準備工作 1 靜態變數web root,用於存放webcontent目錄的絕對路徑 2 定義靜態變數url,存放本次請求服務端的靜態資源的名稱 2...

tomcat實現SSL配置

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

通過Terracotta實現Tomcat集群(2)

配置terracotta雙機熱備 1 配置terracotta tc config.xml user.home terracotta server data user.home terracotta server logs user.home terracotta server statistics...