我很困惑这一点,毫无疑问这是我的误解或其他一些问题,但我试图让我的机器与上游代理通话,我正在使用redsocks透明地重定向到上游.
下面我们可以看到卷曲
root@Amachine:/# curl -v -k https://bower.herokuapp.com * Rebuilt URL to: https://bower.herokuapp.com/ * Hostname was NOT found in DNS cache * Trying 54.235.187.231... * Connected to bower.herokuapp.com (54.235.187.231) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA * Server certificate: * subject: C=US; ST=California; L=San Francisco; O=Heroku, Inc.; CN=*.herokuapp.com * start date: 2014-01-21 00:00:00 GMT * expire date: 2017-05-19 12:00:00 GMT * issuer: CORPORATE PROXY
发行人似乎是公司代理人.打破所有的ssl通讯.
root@machine:/# openssl s_client -connect bower.herokuapp.com:443 CONNECTED(00000003) depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA verify error:num=20:unable to get local issuer certificate verify return:0 --- Certificate chain 0 s:/C=US/ST=California/L=San Francisco/O=Heroku, Inc./CN=*.herokuapp.com i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
令我困惑的是,他们有不同的发行人.Granted curl似乎隐藏了大部分正在发生的事情.我可以指定根ca路径和openssl工作,并给我一个确定,但卷曲不知何故使用不同的路径
我实际上不确定如何调试curl上发生的事情.我以为我会得到一个类似的发行人.我可能误解了s_client的工作方式,有人知道发生了什么吗?
您的网络中有一个SSL拦截代理,而curl正在使用它,而openssl不使用它,或者代理不拦截连接.从您的描述中不清楚案件究竟是什么,但可能是
你正在使用不同的机器,从一个连接被截获而另一个没有
拦截代理不会在没有服务器名称指示(SNI)的情况下拦截连接.Curl执行SNI而openssl不是您使用它的方式.使用-servername
参数重试SNI.