Mirth连接跨EC2实例MySQL报SSLHandshakeException无合适协议问题咨询
Mirth连接MySQL SSL握手故障排查与解决
问题核心
报错No appropriate protocol (protocol is disabled or cipher suites are inappropriate)本质是Mirth与MySQL在SSL握手阶段,TLS版本或加密套件无法匹配,即便已配置TLS版本仍存在其他遗漏配置点。
前置排查
- 确认网络连通性:在Mirth所在EC2执行
nc -zv <MySQL实例IP> 3306,验证安全组、网络ACL已放通3306端口访问 - 确认MySQL账号授权:在MySQL中执行
SELECT host FROM mysql.user WHERE user = 'mirth使用的数据库账号';,确认已允许Mirth所在EC2 IP访问
解决方案
方案1:调整JDBC连接参数(优先使用)
Mirth读取的数据库连接参数优先级高于全局加密配置,需在mirth.properties的MySQL连接URL中显式指定TLS协议:
database.url = jdbc:mysql://<MySQL_IP>:3306/<mirth库名>?useSSL=true&enabledTLSProtocols=TLSv1.2
若内网环境无需SSL加密,可直接关闭SSL避免协议匹配问题:
database.url = jdbc:mysql://<MySQL_IP>:3306/<mirth库名>?useSSL=false&allowPublicKeyRetrieval=true
修改后重启Mirth服务验证是否恢复。
方案2:对齐加密套件配置
若必须开启SSL,需先查询MySQL支持的加密套件列表:
SHOW STATUS LIKE 'Ssl_cipher_list';
将查询结果中的套件列表,替换你当前mirth.properties中https.cipherSuites的配置值,确保双方套件完全匹配后重启服务。
方案3:修改JDK禁用协议规则
Mirth运行依赖的JDK默认会禁用低版本TLS协议,需编辑JDK目录下的jre/lib/security/java.security文件,找到jdk.tls.disabledAlgorithms配置项,删除其中的TLSv1、TLSv1.1条目,保存后重启Mirth服务即可。
内容的提问来源于stack exchange,提问作者Vibin Guevara
相关产品推荐
相关产品推荐

