使用客户端证书时,Zuul Connections不会保持活动状态

时间:2018-03-27 21:39:07

标签: java spring-cloud netflix-zuul spring-cloud-netflix

为了能够支持客户端证书,我进行了扩展 ProxyHttpConnectionManager extends DefaultApacheHttpClientConnectionManagerFactory并覆盖了newConnectionManager

if (disableSslValidation) {
        try {
            final SSLContext sslContext = SSLContexts.custom()
                    .loadKeyMaterial((new File(keystore)), keyStorePass.toCharArray(), keyStorePass.toCharArray())
                    .loadTrustMaterial(new File(trustStore)).build();
            registryBuilder.register(HTTPS_SCHEME, new SSLConnectionSocketFactory(
                sslContext, NoopHostnameVerifier.INSTANCE));
        }
        catch (Exception e) {
            LOG.warn("Error creating SSLContext", e);
        }

这是我做过的唯一定制。对于需要客户端证书的服务器,Zuul不会使HttpConnections保持活动状态。对于Https上的所有其他服务器,以前的连接将被重用。

SSL日志和TCP转储摘要

无需客户证书
SYN,客户问候 服务器你好 数据交换
请求2-数据交换
超时后关闭

需要客户端证书的服务器
SYN CLient Hello
服务器你好 数据交换
FIN
要求2 - SYN
你好,再一次 数据交换

0 个答案:

没有答案