WSO2 EI嵌入式MI连接EI Analytics报证书过期错误咨询
问题根因
该SSL握手报错的核心触发点是wso2ei-analytics-7.1.0默认自带的内置证书已于2022年1月25日过期,嵌入式MI连接Analytics的7712数据接收端口时,JVM做证书链校验直接触发有效期检查失败,和你配置的统计采集参数本身无关,不是单纯信任库缺证书的问题。
解决方法
方案1:正式环境/长期可用方案(推荐)
重新生成有效证书替换默认过期证书,同步更新MI侧信任库,步骤如下:
- 先完全停掉运行中的wso2ei-analytics服务、Integration Studio及嵌入式MI进程,避免文件被占用导致替换失败。
- 进入Analytics安装目录下的
resources/security路径,用JDK自带的keytool工具生成有效期10年的新自签名证书,替换原有过期的wso2carbon.jks密钥库文件,执行命令:
keytool -genkey -alias wso2carbon -keyalg RSA -keysize 2048 -validity 3650 -keystore wso2carbon.jks -storepass wso2carbon -keypass wso2carbon -dname "CN=localhost, OU=WSO2, O=WSO2, L=Colombo, ST=Western, C=LK"
生产环境部署时请将CN值替换为Analytics服务实际访问的域名/IP,密钥库密码替换为自定义强密码,不要使用默认的
wso2carbon。
- 在同目录下导出新证书的公钥文件:
keytool -export -alias wso2carbon -file wso2carbon.crt -keystore wso2carbon.jks -storepass wso2carbon
- 找到Integration Studio内置嵌入式MI的信任库文件,路径一般为
<Integration Studio安装目录>/runtime/microesb/repository/resources/security/client-truststore.jks。如果之前信任库中已存在旧的wso2carbon别名证书,先执行删除命令:
keytool -delete -alias wso2carbon -keystore client-truststore.jks -storepass wso2carbon
- 将刚导出的新证书公钥导入到MI的信任库中:
keytool -import -alias wso2carbon -file <上一步导出的wso2carbon.crt文件绝对路径> -keystore client-truststore.jks -storepass wso2carbon -noprompt
- 如果生成证书时修改了默认密钥库密码,需要同步修改Analytics、MI配置文件中对应的密钥库密码配置项;如果用默认密码生成,直接重启Analytics服务,再启动嵌入式MI即可正常建立连接,统计数据可正常上报。
方案2:本地开发临时快速方案(禁止用于生产)
仅本地联调测试时,可以通过给嵌入式MI加JVM启动参数临时关闭证书校验,快速绕过报错:
-Djdk.security.allowNonCaAnchor=true -Dcom.sun.net.ssl.checkRevocation=false
该方式会关闭SSL证书合法性校验,存在中间人攻击等安全风险,绝对不能在生产环境配置。
内容的提问来源于stack exchange,提问作者viggnah
相关产品推荐
相关产品推荐

