使用Squid升级TLS连接到TLS 1.2

这里全面披露我对Squid相当陌生。 我正在尝试升级使用FreeBSD 11上的Squid 3.5到TLS 1.2的出站TLS连接。 我们有一个不支持TLS 1.2的较旧的应用程序,但是它与之通信的最终服务器需要它。 我试图让Squid'升级'的TLS连接(客户端—->代理TLS 1.0 ——->代理—–>terminal服务器TLS 1.2)。 我已经configurationSquid使用这个线程以及各种其他网站:

https://stackoverflow.com/questions/34398484/can-i-use-squid-to-upgrade-client-tls-connections

当正常使用代理时,我可以看到squid尝试将TLS1.2连接到目标主机,握手失败,出现以下情况:

(SSLDump Output on Squid server while proxying connections) 2 1490815989.3016 (0.0527) S>CV3.3(85) Handshake ServerHello Version 3.3 random[32]= 15 21 18 2a 4f 7f 76 2e 49 fd 7e fa ea ac 3b f1 0e fe 7e f9 ce d6 46 b1 fb 14 e3 4a 5c 3d 82 b4 session_id[32]= 41 7f 92 6a 90 7f f0 1a 2f c6 b6 17 f4 a2 ab a4 cf 1a e8 65 51 bc 11 0d 3e b9 9d 4e cd bc 49 29 cipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256 compressionMethod NULL 4 3 1490815989.3017 (0.0001) S>CV3.3(3031) Handshake Certificate 4 4 1490815989.3017 (0.0000) S>CV3.3(4) Handshake ServerHelloDone 4 5 1490815989.3028 (0.0010) C>SV3.3(262) Handshake ClientKeyExchange 4 6 1490815989.3028 (0.0000) C>SV3.3(1) ChangeCipherSpec 4 7 1490815989.3028 (0.0000) C>SV3.3(80) Handshake 4 8 1490815989.3581 (0.0552) S>CV3.3(1) ChangeCipherSpec 4 9 1490815989.3581 (0.0000) S>CV3.3(80) Handshake 4 10 1490815989.3619 (0.0037) C>SV3.3(64) Alert 4 1490815989.3620 (0.0001) C>S TCP FIN 4 11 1490815989.4140 (0.0520) S>CV3.3(64) Alert 4 1490815989.4140 (0.0000) S>C TCP FIN 

以上显示了代理连接的后半部分(Squid服务器到远程主机),同时通过代理从我们的应用程序连接到目标主机。 我认为警报字段是什么造成这个问题,但由于他们是encryption的,我不知道警报是什么。 最终的结果是,我们的应用程序失败,出现一个错误,说它无法连接到远程主机。 我看到Squid服务器试图连接,但SSL握手看起来好像它失败了。 当我使用开放的SSL客户端直接从Squid代理服务器本身进行连接时,它会正确完成:

  (From Squid server itself) openssl s_client -connect host.domain.com:443 (SSLDump Output during OpenSSL Client Handshake) 1 2 1490817039.1215 (0.0541) S>CV3.3(81) Handshake ServerHello Version 3.3 random[32]= 28 44 f5 a1 69 9b 6f 04 c6 51 6c c0 82 05 e0 a8 5c b1 8d e0 e0 15 7b b8 29 dc 91 af ad eb 9b 03 session_id[32]= 41 7f 92 6a 90 7e a0 a2 2f c6 b6 17 f4 a2 a8 a4 55 c8 27 dc c8 8a 35 9e 3e b9 9d 4e cd bc 4d 13 cipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256 compressionMethod NULL 1 3 1490817039.1216 (0.0000) S>CV3.3(3031) Handshake Certificate 1 4 1490817039.1216 (0.0000) S>CV3.3(4) Handshake ServerHelloDone 1 5 1490817039.1244 (0.0028) C>SV3.3(262) Handshake ClientKeyExchange 1 6 1490817039.1244 (0.0000) C>SV3.3(1) ChangeCipherSpec 1 7 1490817039.1244 (0.0000) C>SV3.3(80) Handshake 1 8 1490817039.1811 (0.0567) S>CV3.3(1) ChangeCipherSpec 1 9 1490817039.1811 (0.0000) S>CV3.3(80) Handshake 

目前相关的Squidconfiguration:

  # Squid normally listens to port 3128 http_port 3128 ssl-bump generate-host-certificates=on version=1 dynamic_cert_mem_cache_size=8MB cert=/usr/local/etc/squid/certs/domain.com.cert key=/usr/local/etc/squid/certs/domain.com.private # SSL Bump Config always_direct allow all ssl_bump server-first all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER sslcrtd_program /usr/local/libexec/squid/ssl_crtd -s /var/ssl_db -M 4MB sslcrtd_children 8 startup=1 idle=1 

我应该指出,我通过这个代理连接到其他启用SSL的网站没有问题。 TLS升级到1.2工作正常。 例如,使用仅支持TLS 1.0的客户端通过代理连接到仅支持TLS 1.2的站点会导致连接成功。 我读过,也许问题是客户端(在这种情况下,鱿鱼服务器)SSL证书信任问题,但我没有得到警报时,我直接从Squid代理本身连接。 我错过了什么,或者有更好的工具,我应该用来做我想要的? 任何帮助在这里将不胜感激。 提前致谢。