2010-07-10 77 views
42
openssl s_client -connect some.https.server:443 -showcerts 

是一个很好的命令,当您要检查服务器的证书及其证书链时运行。使用代理的openssl s_client

有没有办法在HTTP/HTTPS代理的后面运行此命令?

回答

35

您可以使用proxytunnel

proxytunnel -p yourproxy:8080 -d www.google.com:443 -a 7000 

,然后你可以这样做:

openssl s_client -connect localhost:7000 -showcerts 

希望这能帮助你!

+0

中看到,我不得不在后台运行'proxytunnel -p yourproxy:8080 -d www.google.com:443 -a 7000'来释放第二个命令的终端。 – 2018-02-22 13:58:04

11

的人来这里后2015年5月的:有将包含在OpenSSL的下一个版本的新“-proxy”选项:https://rt.openssl.org/Ticket/Display.html?id=2651&user=guest&pass=guest

+4

我刚刚尝试OpenSSL 1.0.2g 2016年3月1日(Windows),它不知道任何关于代理选项。为什么? – 2016-03-21 11:48:45

+1

将openssl软件包更新为未与操作系统捆绑的版本可以吗? – Krishter 2016-06-12 05:11:43

+2

@ChristianSchäfer这是因为版本1.0.2xx不是“下一个版本”。此选项仅在OpenSSL 1.1.0xx和更高版本中可用。 – zed 2017-03-17 21:53:51

1

因为OpenSSL的V1.1.0

C:\openssl>openssl version 
OpenSSL 1.1.0g 2 Nov 2017 
C:\openssl>openssl s_client -proxy 192.168.103.115:3128 -connect www.google.com -CAfile C:\TEMP\internalCA.crt 
CONNECTED(00000088) 
depth=2 DC = com, DC = xxxx, CN = xxxx CA interne 
verify return:1 
depth=1 C = FR, L = CROIX, CN = svproxysg1, emailAddress = [email protected] 
verify return:1 
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = www.google.com 
verify return:1 
--- 
Certificate chain 
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com 
    i:/C=xxxx/L=xxxx/CN=svproxysg1/[email protected] 
1 s:/C=xxxx/L=xxxx/CN=svproxysg1/[email protected] 
    i:/DC=com/DC=xxxxx/CN=xxxxx CA interne 
--- 
Server certificate 
-----BEGIN CERTIFICATE----- 
MIIDkTCCAnmgAwIBAgIJAIv4/hQAAAAAMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV 
BAYTAkZSMQ4wDAYDVQQHEwVDUk9JWDETMBEGA1UEAxMKc3Zwcm94eXNnMTEeMBwG