我正在编写一个JMeter测试计划来连接到SSL端口(Tomcat Connector).当使用JDK8(1.8.0_51)上的三个JMeter SSL客户端实现(HttpClient4,HttpClient3.1,Java)中的任何一个连接到SSL端口时,我收到SSLHandshakeException(handshake_failure).如果我使用JDK7(1.7.0_75) - 一切都按预期工作.
Client JDK: HotSpot 1.8.0_51
Client OS: Mac OSX 10.10.2
JMeter version: 2.13
Server: Tomcat 7.0.63 (latest)
Server SSL CipherSuite: RC4-SHA
Server SSL Protocol: all
Server Java: OpenJDK 1.7.0_79
Run Code Online (Sandbox Code Playgroud)
以下是我已经尝试过的一些事情:
(1)我尝试更换JCE Unlimited Strength JAR,如同类似问题所示: 连接到https站点时出现SSLHandshakeException
没有更改错误消息或日志文件,JDK8客户端将无法连接到SSL服务器.
(2)我打开了调试,如下所述:https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https.JVM_ARGS设置为启动JMeter -Djavax.net.debug=ssl:handshake:verbose.日志文件(附在下面)没有提示任何原因可能是什么问题.
(3)我尝试指定HTTPS协议,例如-Dhttps.protocols=SSLv3.没运气.SSLv3已禁用或密码不匹配:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
(4)我试过禁用SNI,例如-Djsse.enableSNIExtension=false.也没有运气.
所以,我现在被迫使用JDK7,直到我可以让我的JMeter与JDK8一起运行,我想解决这个问题.
因此,问题在于JDK8如何处理SSL客户端与JDK7的不同.此外,服务器(Tomcat连接器)需要支持适当的密码和协议,但现在这是我无法控制的.
以下是相关日志:
X509KeyManager passed …Run Code Online (Sandbox Code Playgroud) 这与以下问题类似: Eclipse找不到使用sdkman安装的jdk
我在Mac(macos-mojave)上仍面临问题
我两个
/usr/bin/java
/usr/bin/javac
Run Code Online (Sandbox Code Playgroud)
指向
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
Run Code Online (Sandbox Code Playgroud)
分别。
SDKMAN!没有安装正确java,并javac为SDKMAN!s'的默认Java版本。
因此,我有正确java和javac:
% java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
% javac -version
javac 11.0.3
Run Code Online (Sandbox Code Playgroud)
但是,我没有在其中安装任何Java版本:
ls -la /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x 2 root wheel 64 Jun 19 10:06 .
drwxr-xr-x 4 root wheel 128 Apr 16 06:16 ..
Run Code Online (Sandbox Code Playgroud)
编辑:
我还尝试过更新JVM参考/Applications/SpringToolSuite4.app/Contents/Eclipse/SpringToolSuite4.ini(与相对Eclipse.ini):
-vm …Run Code Online (Sandbox Code Playgroud)