起因:
公司的測試環境配置的2fa,需要SSL認證才能訪問。
解決方案一:
修改jmeter.properties里面關於ssl的配置,jmeter.properties的文件路徑如下:
apache-jmeter-5.1\bin\jmeter.properties
找到下面這句,把false改為true。下面這句原本默認前面有個“#”號,需要把“#”號去掉。
server.rmi.ssl.disable=false
解決方案二:
通過對比 SSLSocketImpl源碼以及報錯的debug信息,我們發現原因是:
1. jdk 1.8和 jmeter 5.1並不能很好的兼容,發出去的是 TLS v1, 但是回來的是 TlS v1.2,協議不匹配。
2. 我們的證書,是用的AES-256加密的,所以密鑰長度是AES 256 , 而JDK默認的密鑰支持位數是128位,需要在java.security中進行擴展,讓其支持256位密鑰長度。
具體做的步驟:
1. Downgrade jdk的版本從jdk v1.8降低到jdk v1.7.0_80
2. Downgrade jmeter的版本從v5.1到v2.13
3. 下載 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 並下載local_policy.jar和US_export_policy.jar,並同名覆蓋掉 $JAVA_HOME/jre/lib/security下的同名文件即可。
