如何在SOAP UI 5.4.0中将TLS版本从1.1改为1.2?
解决SOAP UI 5.4.0强制使用TLS 1.2的问题
我之前在使用SOAP UI 5.4.0时也遇到过完全一样的问题——偏好设置里看不到TLS 1.2选项,加了vm参数后请求还是走TLS 1.1。下面是我亲测有效的解决步骤,你可以逐一排查:
1. 确认修改的是正确的vmoptions文件
很多人会搞错文件位置,SOAP UI的vmoptions文件分版本和系统:
- Windows:社区版找安装目录下的
bin\soapui.vmoptions;专业版则是soapui-pro.vmoptions - macOS:右键SOAP UI图标→「显示包内容」→
Contents/Resources/soapui.vmoptions - Linux:安装目录下的
bin/soapui.vmoptions
打开文件后,添加以下完整参数(建议放在文件顶部,避免和其他参数冲突):
-Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false -Ddeployment.security.TLSv1.1=false -Ddeployment.security.TLSv1.2=true -Dsoapui.https.protocols=TLSv1.2
注意:一定要完全关闭SOAP UI再修改文件,修改后重启软件才会生效。
2. 补充修改启动批处理文件(Windows专属)
如果修改vmoptions后还是没效果,可以试试直接修改启动脚本:
找到SOAP UI安装目录下的bin\soapui.bat,找到set JAVA_OPTS=这一行,替换成:
set JAVA_OPTS=-Ddeployment.security.TLSv1.2=true -Dsoapui.https.protocols=TLSv1.2 -Ddeployment.security.TLSv1.1=false -Ddeployment.security.TLSv1=false
保存后用这个批处理文件启动SOAP UI,而不是双击桌面图标。
3. 检查JDK版本是否达标
SOAP UI 5.4.0自带的JDK可能是JDK7,而JDK7对TLS 1.2的支持不够完善(默认不启用)。你可以通过Help → About SOAPUI查看当前JVM版本:
- 如果是
1.7.x,建议换成JDK8:- 下载并安装JDK8
- 在vmoptions文件中添加一行:
java.home=你的JDK8安装路径(比如java.home=C:\Program Files\Java\jdk1.8.0_301)
4. 验证TLS版本是否生效
你可以通过两种方式确认:
- 开启SOAP UI的HTTP日志:
File → Preferences → HTTP Settings,勾选「Enable HTTP Logging」,发送请求后查看日志,会显示握手时使用的协议版本 - 用Wireshark抓包,查看HTTPS握手阶段的
Client Hello和Server Hello包,确认协议是TLS 1.2
内容的提问来源于stack exchange,提问作者Running Rabbit




