秒懂HTTPS接口(JMeter壓測篇)


轉自:https://mp.weixin.qq.com/s/ks1xjnC9iLVps11nsZvv4g

前言

使用JMeter壓測HTTPS接口比較簡單,只需要預先處理SSL證書認證,后面就是壓測HTTP接口的通用步驟。

HTTPS連接證書來驗證瀏覽器和WEB服務器之間的連接。通過HTTP連接時,服務器會將證書提供給瀏覽器。為了對證書進行身份驗證,瀏覽器會檢查服務器證書是否鏈接到其內置根CA之一的證書頒發機構(CA)簽名,詳細請參照秒懂HTTPS接口(原理篇)

JMeter壓測

目前主要兩種方式:

  • 錄制HTTPS(適用購買的CA證書)

  • 手動配置證書(均適用)

錄制HTTPS

大致原理

圖片

JMeter錄制器通過瀏覽器訪問其代理服務器,由代理服務器根據訪問解析后生成 HTTPSampler的方式充當了瀏覽器的角色,於是當建立代理服務器連接后,瀏覽器會直接將代理服務器當做目標服務器。這時候它就會向代理服務器索要數字證書,JMeter通過生成一個本地的CA證書來完成這個與瀏覽器建立HTTPS連接的過程。 然后JMeter使用自己的證書攔截來自瀏覽器的HTTPS連接,實際上就是JMeter偽裝成目標服務器。

具體步驟

打開JMeter在菜單欄上選擇錄制模板

圖片

生成完整的測試計划 

圖片

HTTPRequestDefault中輸入域名/IP地址,這里以 github.com示例 

圖片

返回 HTTP(S)TestScriptRecorder,然后單擊啟動按鈕

圖片

這時候已經啟動JMeter代理服務器,用於攔截瀏覽器請求。這時候會在 jmeter_home/bin文件夾中生成 ApacheJMeterTemporaryRootCA.crt文件

圖片

圖片

JMeter生成的CA證書默認情況是不被瀏覽器信任的,所以我們需要安裝其為受信任的證書,這里我以Mac系統示例。

圖片

圖片

然后就是配置瀏覽器使用JMeter代理了,這里我以Chrome示例。

打開"設置" 

圖片

打開"系統"菜單 

圖片

圖片

設置代理 

圖片

最后,在瀏覽器輸入URL地址,JMeter會生成錄制的請求。 

圖片

手動配置證書

從瀏覽器導出站點證書(一般是單向證書,即服務器不限制客戶端),此處以window系統Chrome瀏覽器示例 

圖片圖片

證書導出為DER格式 

圖片

帶有后綴擴展名的證書文件: 

*.DER *.CER : 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。 *.CRT : 這樣的文件可以是二進制格式,也可以是文本格式,一般均為文本格式,功能與.DER/.CER相同。

*.PEM : 一般是文本格式,可以放證書或私鑰,或者兩者都包含。

*.PEM如果只包含私鑰,那一般用 *.KEY代替。 

*.PFX *.P12 是二進制格式,同時含證書和私鑰,一般有密碼保護

在JDK的bin目錄下通過keytool把證書導入秘鑰文件 .strore

  1. C:\Program Files\Java\jdk1.8.0_111\bin>keytool -import -alias tomcat -file d:/tomcat.cer -keystore d:/tomcat.keystore

  2. 輸入密鑰庫口令:

  3. 再次輸入新口令:

  4. 所有者: CN=zuozewei, OU=7DGroup, O=7D, L=ChaoYan, ST=BeiJing, C=CN

  5. 發布者: CN=zuozewei, OU=7DGroup, O=7D, L=ChaoYan, ST=BeiJing, C=CN

  6. 序列號: 42a28e33

  7. 有效期開始日期: Thu Nov 29 23:05:23 CST 2018, 截止日期: Fri Nov 29 23:05:23 CST 2019

  8. 證書指紋:

  9.         MD5: 14:0B:55:7A:F3:22:08:D0:B9:62:0D:52:68:6F:53:26

  10.         SHA1: 62:66:3F:76:AE:B0:39:9A:20:B0:32:08:00:5D:9B:74:29:0A:D0:33

  11.         SHA256: 45:A2:50:84:99:A6:74:2C:13:A4:67:88:AC:1C:2D:72:42:61:F0:A3:9E:D2:1E:F9:BF:79:76:E5:64:DF:C1:CD

  12.         簽名算法名稱: SHA256withRSA

  13.         版本: 3

  14.  

  15. 擴展:

  16.  

  17. #1: ObjectId: 2.5.29.14 Criticality=false

  18. SubjectKeyIdentifier [

  19. KeyIdentifier [

  20. 0000: 90 A9 84 43 50 99 02 A2   FC B4 0C 33 B0 B6 16 CC  ...CP......3....

  21. 0010: C1 4E 80 AD                                        .N..

  22. ]

  23. ]

  24.  

  25. 是否信任此證書? [否]:  y

  26. 證書已添加到密鑰庫中

通過JMeter的SSL管理加載store文件 

圖片

后面跟壓測HTTP接口一樣,不過要注意 HTTPRequestSampler協議輸入https,端口設置為443 

圖片

 

秒懂HTTPS接口系列源碼:

https://github.com/zuozewei/Springboot-https-demo

 

相關系列:

秒懂HTTPS接口(原理篇)

秒懂HTTPS接口(實現篇)

秒懂HTTPS接口(接口測試篇)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM