我知道这个问题可能会被问到多次,但是在最新的鱿鱼中,没有一个对我有用
我正在尝试在MITM模式下运行鱿鱼。我通过将站点的fqdn解析为鱿鱼IP,将流量从浏览器重定向到鱿鱼。现在,我希望Squid终止SSL并创建一个到目标服务器的新SSL,这是一种透明的代理https请求。
我已经信任浏览器中的根CA。我看到的问题是squid返回的证书中的CN与目标服务器不匹配,它附带根CA的CN。
我正在使用以下方式编译的鱿鱼4.5 ./configure --with-openssl = / usr / local / ssl --with-ssl-crtd
Squid.conf
https_port 443 accel cert=/usr/local/squid/etc/ssl_cert/myCA.pem \
key=/usr/local/squid/etc/ssl_cert/myCA.pem allow-direct \
generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
acl step1 at_step SslBump1
ssl_bump stare step1
ssl_bump bump all
如果使用此配置,如果我忽略证书验证连接就可以了,但是如果启用,则CN返回给客户端的证书不正确。
示例-尝试通过鱿鱼连接到Google
[nsroot@Bastion ~]$ curl https://google.com -vv --insecure
* Connected to google.com (10.90.18.99) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: E=er,CN=er,OU=er,O=er,L=er,ST=er,C=er ------> CN should have google.com
* start date: Feb 07 04:30:51 2019 GMT
* expire date: Feb 04 04:30:51 2029 GMT
* common name: er
* issuer: E=er,CN=er,OU=er,O=er,L=er,ST=er,C=er
我玩过多个配置,但没有成功。返回正确证书的配置如下
乌贼conf
https_port 443 intercept ssl-bump cert=/usr/local/squid/etc/ssl_cert/myCA.pem \
key=/usr/local/squid/etc/ssl_cert/myCA.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump bump all
但是使用此配置,无法连接到Google网站。
什么是正确的配置以透明地拦截https连接并为客户端生成正确的证书。