最近使用OpenSSL的库去访问HTTPS的报文,在外网环境能够很好的工作,OpenSSL的封装将通信前的Handshake,cipher suites exchange , 传输过程的加密、解密都做好了,用起来也非常简单 ,
但是在内网环境通过代理服务器访问时出现问题了,抓包过程发现,内网环境是在与代理服务器交换数据。
在开始传输数据之前会先用HTTP协议的CONNECT 动词建立连接,继而进行后续的握手与数据交换。
但是不知道怎么在OpenSSL中进行设置,让访问正常进行,各位有类似情况的怎么处理?
openssl 通过代理服务器访问HTTPS报文的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 这篇博客也许可以解决你的问题👉 :内网使用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断开连接
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报