CloudHub Notification在VPC内Worker连接失败问题求助
问题描述
我开发了一个基于业务需求触发邮件告警的API,使用CloudHub create-notification连接器实现告警功能。
连接器配置
<cloudhub:config name="CloudHub_Config" doc:name="CloudHub Config"> <cloudhub:connection username="${ch.username}" password="${ch.password}" environment="${environment.id}"/> </cloudhub:config>
用户名和密码已在Runtime manager > 应用 > 属性中配置,用户权限已在Access Management验证通过,对应环境的Runtime manager也已配置自定义应用通知告警。
流中告警代码
<cloudhub:create-notification doc:name="Success" config-ref="CloudHub_Config" domain="${domain}" priority="INFO"> <cloudhub:message><![CDATA[#[ " Success scenario Hello user" ]]]> </cloudhub:message> <cloudhub:custom-properties><![CDATA[#[output application/java --- { "category" : "Info", "status" : "Success" }]]]> </cloudhub:custom-properties> </cloudhub:create-notification>
测试与异常情况
- Studio中使用4.4.0运行时指向AnyPoint测试环境:测试成功
- 部署到VPC内CloudHub Worker(4.4.0运行时):启动阶段连接测试失败,执行组件时抛出核心错误:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target - 同一VPC内Worker使用4.3.0运行时:同样失败
- 非VPC的CloudHub Worker使用4.4.0运行时:成功
目前确认VPC内Worker上的CloudHub-notification组件出现SSL握手错误,但该组件无SSL配置项,求解决方法。
解决方案
1. 检查VPC出站网络规则
VPC内的Worker需要能访问AnyPoint平台的通知服务端点,确认VPC的安全组或网络ACL是否允许出站HTTPS(443端口)到以下域名:
*.mulesoft.com*.anypoint.mulesoft.com
如果VPC配置了私有DNS或防火墙规则,需确保这些域名能正确解析并建立SSL连接。
2. 导入平台证书到应用信任存储
由于VPC内环境可能无法访问公共CA根证书,需要手动将AnyPoint平台的SSL证书导入到应用的自定义信任存储:
- 从浏览器访问AnyPoint平台,导出对应域名的SSL证书(PEM格式)
- 将证书导入到JKS格式的信任存储文件中
- 在Runtime Manager的应用属性中添加以下配置,指定应用使用该信任存储:
mule.ssl.trustStore=classpath:your-truststore.jks mule.ssl.trustStorePassword=your-store-password
3. 验证AnyPoint Private DNS配置(若使用)
如果你的VPC配置了AnyPoint Private DNS,确认通知服务的端点能通过私有DNS正确解析,避免因公共DNS解析问题导致的证书域名不匹配。
4. 升级连接器版本
确认使用的cloudhub-notification连接器为最新版本,旧版本可能存在VPC环境下的SSL适配问题。在Exchange中查看连接器更新日志,升级到兼容Mule 4.4.0的最新版本。
5. 提交MuleSoft支持工单
如果以上方法都无效,可能是VPC环境与AnyPoint平台服务的特定兼容性问题,建议提交支持工单,提供应用完整日志和VPC配置细节,让技术团队协助排查。
内容的提问来源于stack exchange,提问作者Sambit Swain
相关产品推荐
相关产品推荐

