WSO2 APIM连接MSSQL数据库时SSL认证路径错误求助
解决WSO2 API Manager连接SQL Server的SSL证书错误
问题根源
出现PKIX path building failed错误,是因为WSO2依赖的JVM未信任SQL Server的SSL证书,导致无法建立加密连接。
解决方法
方法1:测试环境临时关闭SSL验证
在JDBC连接URL中添加encrypt=false参数,绕过SSL证书校验。修改后的配置如下:
[database.apim_db] type = "mssql" url = "jdbc:sqlserver://ip\\test:port;databaseName=WSO2AM_DB;SendStringParametersAsUnicode=false;encrypt=false" username = "username" password = "password" [database.shared_db] type = "mssql" url = "jdbc:sqlserver://ip\\test:port;databaseName=WSO2SHARED_DB;SendStringParametersAsUnicode=false;encrypt=false" username = "username" password = "password"
修改后重启APIM即可,但生产环境禁止使用,会带来数据传输安全隐患。
方法2:生产环境导入证书到信任库
- 获取SQL Server证书
- 自签名证书:从SQL Server服务器导出格式为
.cer的证书文件; - CA签发证书:获取对应的根CA证书。
- 自签名证书:从SQL Server服务器导出格式为
- 导入证书到WSO2信任库
WSO2默认信任库路径为<APIM_HOME>/repository/resources/security/client-truststore.jks,默认密码wso2carbon。用JDK的keytool命令执行导入:
命令执行后输入keytool -importcert -file /path/to/sqlserver-cert.cer -alias sqlserver-cert -keystore <APIM_HOME>/repository/resources/security/client-truststore.jks -storepass wso2carbonyes确认信任该证书。 - 重启WSO2 API Manager
证书导入完成后重启服务,即可建立安全的SSL连接。
额外排查项
- 确认SQL Server JDBC驱动版本与数据库版本匹配,优先使用官方最新稳定版;
- 检查服务器防火墙是否开放SQL Server端口,确保APIM能正常访问数据库。
内容的提问来源于stack exchange,提问作者Nalyssia Govender
相关产品推荐
相关产品推荐

