1.配置SSL证书库参数及自定义组件
@Component
private void setupSSLConext(CamelContext camelContext) throws Exception {
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
// Change this path to point to your truststore/keystore as jks files
keyStoreParameters.setResource("秘钥库地址");
keyStoreParameters.setPassword("秘钥库密码");
KeyManagersParameters keyManagersParameters = new KeyManagersParameters();
keyManagersParameters.setKeyStore(keyStoreParameters);
keyManagersParameters.setKeyPassword(passwd);
TrustManagersParameters trustManagersParameters = new TrustManagersParameters();
trustManagersParameters.setKeyStore(keyStoreParameters);
SSLContextParameters sslContextParameters = new SSLContextParameters();
sslContextParameters.setKeyManagers(keyManagersParameters);
sslContextParameters.setTrustManagers(trustManagersParameters);
HttpComponent component = new HttpComponent();
component.setSslContextParameters(sslContextParameters);
//This is important to make your cert skip CN/Hostname checks
component.setX509HostnameVerifier(new AllowAllHostnameVerifier());
//自定义组件,当服务属于https服务时,变更原始服务路由地址,ex:url.replace("https://","tohttps:");
camelContext.addComponent("tohttps", component);
}
2.每次服务调用添加SSL配置环境
public class HttpRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
setupSSLConext(getContext());
........
}
}