openssl s_client使用代理

pus*_*pop 64 openssl

openssl s_client -connect some.https.server:443 -showcerts
Run Code Online (Sandbox Code Playgroud)

当您想要检查服务器的证书及其证书链时,这是一个很好的命令.

当您在HTTP/HTTPS代理后面时,有没有办法运行此命令?

Fra*_*cci 50

您可以使用proxytunnel:

proxytunnel -p yourproxy:8080 -d www.google.com:443 -a 7000
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

openssl s_client -connect localhost:7000 -showcerts
Run Code Online (Sandbox Code Playgroud)

希望这可以帮到你!

  • `proxytunnel`支持代理身份验证,(确实)`openssl s_client -proxy`不支持,至少在1.1.0h内不支持。 (2认同)

Eri*_*ger 19

对于2015年5月之后来到这里的人来说:有一个新的"-proxy"选项将包含在openssl的下一个版本中:https://rt.openssl.org/Ticket/Display.html?id = 2651&user =客人&传=客

  • 我刚刚尝试过OpenSSL 1.0.2g 2016年3月1日(Windows),它对代理选项一无所知.为什么? (4认同)
  • @ChristianSchäfer这是因为版本1.0.2xx不是"下一个版本".此选项仅在OpenSSL 1.1.0xx及更高版本中可用. (3认同)
  • 是否可以将openssl软件包更新为未与操作系统捆绑在一起的版本? (2认同)

mto*_*omy 16

官方没有.

但这里有补丁http://rt.openssl.org/Ticket/Display.html?id=2651&user=guest&pass=guest

  • 实际上,截至2015年5月22日,该补丁实际上已实施.我也看到了 (3认同)

Arn*_*lle 12

自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 = xxxx@xxxx.xx
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/emailAddress=xxxx@xxxx.xx
 1 s:/C=xxxx/L=xxxx/CN=svproxysg1/emailAddress=xxxx@xxxx.xx
   i:/DC=com/DC=xxxxx/CN=xxxxx CA interne
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDkTCCAnmgAwIBAgIJAIv4/hQAAAAAMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
BAYTAkZSMQ4wDAYDVQQHEwVDUk9JWDETMBEGA1UEAxMKc3Zwcm94eXNnMTEeMBwG
Run Code Online (Sandbox Code Playgroud)