gpt4 book ai didi

delphi - WinInet+SSL : Can't make abbreviated SSL handshake

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:56 25 4
gpt4 key购买 nike

我的 ActiveX 组件使用 WinInet.dll 并使用 SSL 证书颁发机构与服务器建立 SSL 连接。

如果它不在 IE 进程中托管,它总是与服务器进行完整的 SSL 握手。而且我找不到任何方法在 Client Hello 中重用 SessionID header 来进行简短的 SSL 握手。

否则,如果我的 ActiveX 托管在 IE 进程中,则会自动重用 SessionID header 。

看起来 IE 对我的连接应用了额外的设置。有人知道这些附加设置吗?谁能给我一些解决这个问题的建议?

附言它是 Delphi 项目,所以我不能使用 WCF,也不能移动到 OpenSSL。


我想我应该在这里澄清一下:

  1. 我的 ActiveX 在两种情况下(在 IE 进程上下文和非 IE 进程上下文中)肯定都使用 WinInet.dll。

  2. WinInet.dll 自己进行 SSL/TLS 握手。我无法访问 WinInet 级别的 SessionID header ,但 IE 可以。

  3. 如果我的 ActiveX 在 IE 进程中托管,IE 知道如何设置 WinInet 以使用以前的 SessionID。 WinInet 执行缩写的 SSL/TLS 握手。

  4. 如果我在非 IE 进程中使用 WinInet.dll,则 WinInet 不会将 SessionID 用于 Client Hello。 WinInet 进行完整的 SSL/TLS 握手。

  5. 所以我们这里有两种 SSL/TLS 握手场景:完整的非 IE 进程和缩写的 IE 进程。在 MSDN 博客中查看有关这些方案的更多信息 http://blogs.msdn.com/b/huizhu/archive/2009/12/17/ssl-_2f00_tls-full-handshake-vs.-abbreviated-handshake.aspx

希望现在更清楚了。

最佳答案

Internet Explorer 使用 WinInet 进行自己的连接。假设您的 ActiveX 是一个进程内对象,当它托管在 IE 内部时,WinInet 只是在同一进程内与自身共享信息。当您的 ActiveX 托管在本身不使用 WinInet 的非 IE 进程中时,您不会得到它。

关于delphi - WinInet+SSL : Can't make abbreviated SSL handshake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11937312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com