1. 程式人生 > >JMETER ssl安全數字證書相關配置

JMETER ssl安全數字證書相關配置

HTTPS概念:

     有人會說既然有了非對稱加密演算法,那麼直接利用它就可以實現瀏覽器與Web伺服器間通訊訊息的加解密了。但你要明白一切保障資訊保安的手段都是在犧牲效能和易用性的代價下展開的,確實可以在訊息傳遞中直接利用非對稱加密演算法來實現訊息的加解密,但在瀏覽器與Web伺服器之間HTTP協議如此頻繁和體積巨大的訊息通訊場景下,非對稱加密演算法的效能問題就凸顯出來,如果直接採用,將極大影響協議的整體效能。於是,人們就採用變通的方法,同時利用非對稱加密演算法和對稱加密演算法實現針對HTTP訊息傳遞的加解密,其中非對稱加密演算法只參與到對對稱加密演算法金鑰(對話金鑰)的加密過程中,而大塊訊息的加解密則由瀏覽器和Web伺服器間協商好的對稱加密演算法來完成。

另外,任何Web伺服器都有可能向瀏覽器提供建立HTTPS連線所需要的公鑰,這裡就排除不了一些假冒的伺服器提供一些自己偽造的公鑰,為了確保Web伺服器是值得我瀏覽器信任的,於是引入了數字證書的概念。為了證明自己是值得信賴的,Web伺服器需要向第三方CA機構申請一個數字證書,證書中包含了證書基本資訊和伺服器的公鑰資訊,證書的最後面是一個由CA機構的私鑰對證書上述資訊計算摘要後加密的訊息簽名信息。瀏覽器內建了一些權威的根證書,這些根證書中帶有對應其發證CA機構的公鑰,一旦得到Web伺服器的數字證書,瀏覽器會在第一時間來根據證書資訊查詢是否存在對應的根證書,如果存在,利用根證書中的公鑰解密Web伺服器數字證書中的訊息簽名信息,並與自己計算的證書摘要資訊進行比對,從而驗證其真實性和完整性,只要通過驗證,瀏覽器會自動信任由這些權威機構頒發的證書。當然在某些特定場景下Web伺服器也需要瀏覽器提供數字證書以證明其可信度。

HTTPS = HTTP + SSL

工作流程:

HTTPS採用SSL/TLS協議實現在通訊安全上的保障,主要分為握手階段和對話階段。

其中握手階段的大致的工作流程如下:

(1)首先,瀏覽器會向伺服器發起HTTPS請求,請求訊息中包含了自己當前所採用的SSL/TLS協議的版本資訊,一個隨機數(用於生成在對話階段的對稱加密金鑰)支援的加密演算法。另外,還將向伺服器索要數字證書;

(2)伺服器迴應瀏覽器的請求,響應訊息中包含確認使用與瀏覽器相同版本的SSL/TLS協議的迴應,一個隨機數(用於生成在對話階段的對稱加密金鑰),確認將使用瀏覽器支援的加密演算法完成加解密。並將數字證書發給瀏覽器;

(3)瀏覽器接到伺服器的數字證書後,判斷其是否值得信任,如果信任,獲取伺服器的公鑰,將生成一個隨機數(用於生成在對話階段的對稱加密金鑰)並使用伺服器提供的公鑰進行加密,向伺服器傳送請求訊息,請求訊息中包含了加密後的隨機數,編碼改變的通知(表示隨後的資訊都將用雙方商定的加密方法和金鑰傳送),瀏覽器握手階段結束的通知(包含一個之前所有資訊的摘要值以校驗是否握手階段通訊資訊完整)。

(4)伺服器確認通知,通過自己的私鑰解密被加密隨機數,並回應瀏覽器的請求,響應訊息為編碼改變的通知(表示隨後的資訊都將用雙方商定的加密方法和金鑰傳送),伺服器握手階段結束的通知(包含一個之前所有資訊的摘要值以校驗是否握手階段通訊資訊完整)。

環境以及配置:

1.使用keytool工具製作證書—CMD裡輸入以下命令:

keytool -genkey-alias xreztento -sigalg MD5withRSA -keyalg RSA -keysize1024-validity10950-keystore./test.keystore可以使用-sigalg指定訊息簽名演算法,比如MD2withRSA、MD5withRSA、SHA1withRSA等。可以使用-keyalg指定非對稱加密演算法,比如RSA、DSA等。如果是初次建立keystore,將要求你設定密碼資訊,製作的檔名為test.keystore 預設在你本地C盤users的資料夾下。

2.檢視基本資訊

keytool -list-v-keystore./test.keystore

3.檢視公鑰資訊

keytool -list-rfc-keystore./test.keystore

4.匯出數字證書

keytool -export-file xreztento.crt -alias xreztento -keystore./test.keystore

5. 匯出私鑰

我們可以先將證書倉庫轉換為PKCS12格式,然後利用OpenSSL自帶的工具進行私鑰

keytool -importkeystore-srckeystore test.keystore -destkeystore test.p12 -deststoretype PKCS12

openssl pkcs12 -in test.p12 -out extracted.pem -nodes

6.修改jmeter配置檔案

修改jmeter 的system.properties的檔案,修改如下引數

將javax.net.ssl.keystore=/home/victor/.store修改成你store存放的檔名(這裡我是放在jmeter的bin目錄下的,所以直接輸入檔名即可)

將javax.net.ssl.keyStorePassword=修改成你設定的password。

7.修改完成將生成的證書檔案匯入到瀏覽器


一定匯入到受信任的根證書頒發機構--之前我匯入到個人,發現無法還是會提示連結的安全問題。

 8.重啟瀏覽器,重啟電腦。然後再使用jmeter就不會出現提示連結不安全的問題啦。