openssl 通过代理服务器访问HTTPS报文的问题

最近使用OpenSSL的库去访问HTTPS的报文,在外网环境能够很好的工作,OpenSSL的封装将通信前的Handshake,cipher suites exchange , 传输过程的加密、解密都做好了,用起来也非常简单 ,
但是在内网环境通过代理服务器访问时出现问题了,抓包过程发现,内网环境是在与代理服务器交换数据。
在开始传输数据之前会先用HTTP协议的CONNECT 动词建立连接,继而进行后续的握手与数据交换。
但是不知道怎么在OpenSSL中进行设置,让访问正常进行,各位有类似情况的怎么处理?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客也许可以解决你的问题👉 :内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问
  • 除此之外, 这篇博客: openssl导出HTTPS服务的证书(自动生成证书文件)中的 3. 说明 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    3.1 选项: -servername ${host}

    SNI(Server Name Indication)定义在RFC 4366,是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手阶段(具体说来,是客户端发出SSL请求中的ClientHello阶段),就提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书。若服务端开启了SNI,客户端不指定ServerName则会报错。

    3.2 选项: -outform pem

    #证书格式说明
    PEM (Privacy Enhanced Mail):内容经过BASE64编码,首行以"-----BEGIN"开头,尾行以 "-----END"开头。
    DER (Distinguished Encoding Rules):二进制格式,不可读。

    #证书格式转化
    openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
    openssl x509 -in cert.pem -inform pem -outform der -out cert.crt
    

    3.3 命令: echo "Q"

    openssl建立连接后,输入字符Q断开连接


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^