gpt4 book ai didi

apache - Delphi 7/Indy 9 应用程序未通过 SSL 连接到 Apache

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:11 27 4
gpt4 key购买 nike

我们有一个使用 Indy 9 在 Delphi 7 中构建的应用程序,用于 https 连接到在 Linux 上运行的 PHP 后端。该应用程序可以毫无问题地连接到我们当前的生产服务器。我们一直在内部为此应用程序构建测试环境,并且在测试 Web 服务器上,它拒绝使用 https 进行连接。该应用程序已经能够使用 http 连接到此服务器。我可以使用应用程序发出的相同网络调用连接任何当前浏览器(没有尝试过旧浏览器),并且我获得了连接,并且数据完美返回,所以显然 Indy 9 中有一些东西阻止它工作(哪个这就是为什么这个问题在这里而不是在 ServerFault 上)有没有人有足够的 Indy/SSL 经验来知道这里发生了什么?

以下是我认为可能有一些不同之处:1. 我最初是从通配符证书开始的。它是有效的,并且在正确的域上。它适用于我们在许多服务器上拥有的所有其他东西。2. 考虑到通配符证书可能是比 Indy 9 更新的东西,我删除了通配符证书,并放入了一个自签名证书,其中包含完整的机器名称。它以同样的方式失败了。但是,如您所知,浏览器使用这些自签名证书发出证书异常,所以我不确定这是否也会给 Indy 带来问题。3. 我确定我们新开发服务器上的 OpenSSH 版本比我们生产服务器上当前的版本更新。如果有人认为有帮助,我可以找出这些确切的版本。

这是我继承的应用程序,所以我对 SSL 和 Indy 的了解有限。这个应用程序已经到了生命的尽头,所以升级到 Indy 10 不是我公司要资助的事情。非常欢迎任何帮助或指点或提示,我将不胜感激。非常感谢堆垛机!

最佳答案

没有提及正在发生的具体错误,因此很难在没有特定错误消息的情况下提供建议。

1) 追踪您在 SSL 握手中收到的实际响应,并尝试确定消息的正面或反面。 (DoStatusInfo())

2)(这里有很大的猜测)SSL 连接有不同的版本,旧版本已过时,不再建议支持。如果您正在构建一个新服务器,它的默认值可能与当前生产机器不同,我假设它是一个更旧的构建。 (它越旧,这个猜测越适用。)较新的服务器应该希望拒绝连接到 SSL V2 和 V3(并且只允许 TLS)所以这可能是旧生产服务器和新测试服务器的配置差异而这个新版本正在过滤掉旧的 SSL 版本并阻止握手继续。 (这将显示在 #1 中的握手失败中,这是您用来回答这个问题的真正工具。)

这是使用 openssl.exe 进行的快速连接测试。尝试将此连接到测试盒和生产机器,看看是否建立了连接。你也可以尝试 v3 来验证或消除这个猜测......如果他们的行为相同,那么专注于#1。 :)

openssl s_client -ssl2 -connect yourhost:443

关于apache - Delphi 7/Indy 9 应用程序未通过 SSL 连接到 Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9910880/

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