有没有办法为Apache HTTP Client中的每个路由设置单独的SSL Context Factory。从文档中我只能看到我们可以为每个方案配置SSLContextFactory而不是每个路由。
Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", plainsf)
.register("https", sslsf)
.build();
HttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(r);
HttpClients.custom()
.setConnectionManager(cm)
.build();
我的所有目标端点都受HTTPS保护,并要求客户端证书身份验证。对于这些端点中的每一个,我必须选择特定的客户端证书&amp;将它呈现给端点服务器。目前我看到唯一的方法是为每个目标端点路由创建一个单独的HTTPClient实例。使用SSLContext Factory实例进行配置。
我在这里寻找改进此设计的任何指示。
感谢。
答案 0 :(得分:2)
我已在Apache HTTP客户论坛中发布此问题&amp;得到了如何解决这个问题的解决方案。
可以使用&#39; http.socket-factory-registry&#39;上下文属性 结束但请注意此功能被视为无证件。
请注意,可以构建自定义ConnectionSocketFactory 在创建SSL套接字时使用自定义上下文属性。 这将是解决问题的推荐方法。