- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经向 Embacadero 技术支持提出了这个问题,并在那里提出了一个案例,但也想知道这里是否有人知道这个问题的答案。
我在一家零售公司工作,并使用 Delphi 编写了他们的邮购程序。
该程序严重依赖的一件事是处理信用卡数据。从第一天起,这从来就不是一个大问题。我们的网关提供商是英国的 Verifone,到目前为止,我一直使用 SOAP 请求程序与 Verifone 处理服务器进行通信。我在使用此功能时没有遇到太多问题,并且从那时起它就一直有效。不过,我并不自称是 SOAP 调用等方面的专家。由于组件遗留原因,该软件仍然驻留在 D2007 中,这样就很好。我仍然可以根据需要开发它。
到现在为止......
昨天我收到了一封来自 Verifone 的电子邮件,内容如下:
“2016 年 10 月 4 日星期二,Verifone 将进行以下更改:1. 将安全证书从 SHA-1 升级为更安全的 SHA-256 算法。
2. 取消对 SSL v3 和 TLS v1.0 的支持。”
他们提供了此页面的链接:
http://www.verifone.co.uk/support/ssl
首先,我并没有过度担心,我们过去也进行过一些类似的更改(尽管主要是证书更改),但这并没有影响我们。但我读得越多,就越感到有点担心。
所以我决定最好进行一些测试。在第二个选项卡的该页面上,有一些测试 URL。我将现有的测试 URL(我们用于在系统上进行训练的测试 URL)替换为新的测试 URL,然后……失败了。我收到错误:
“无法与服务器建立连接 - URL:http://xml-cst.cxmlpg.com/gateway/gateway.asmx - SOAPAction:https://www.commidea.webservices.com/GetServerStatus”
或类似于此屏幕截图,它是实际测试信用卡检查而不是服务器状态检查:
这只是执行一个简单的“GetServerStatus”调用,不需要帐户或凭据。我知道服务器正在 Chrome 中使用此 URL:
https://xml-cst.cxmlpg.com/gateway/gateway.asmx?op=GetServerStatus
我开始怀疑这是否是 D2007 中 SOAP 调用的组件中的问题。
所以昨晚我在西雅图的家里尝试了一下。我的想法是,如果我至少可以让它在那里运行,那么我可以在西雅图编写一个小实用程序,与 D2007 邮购套件一起放置,以处理信用卡。我从以下位置导入了 WSDL:
https://xml-cst.cxmlpg.com/gateway/gateway.asmx?wsdl
使用 WSDL 导入器并向表单添加一个按钮来调用 GetServerStatus 函数(与我在 D2007 中获得原始工作的方式相同):
procedure TForm1.Button1Click(Sender: TObject);
var
gs : GatewaySoap;
begin
gs := (HTTPRIO1 as GatewaySoap);
gs.GetServerStatus
end;
我交叉手指并点击了按钮。
唉,我收到了与上面相同的错误消息。所以现在我认为这与 Delphi 版本完全无关。
这是一个非常可怕的问题,因为它基本上完全停止了邮购软件的自动化功能,而这是邮购软件的一部分。如果我不能让简单的 GetServerfStatus 工作,那么我就完全不知所措了。
有人知道这里发生了什么吗?我是否无法通过 SOAP 请求程序执行非 SSL/TLS1.0 操作?看起来必须是 TLS1.1/1.2。我该如何解决这个问题?我现在猜测,如果西雅图可以解决此问题,那么相同的解决方案可能适用于 D2007 中的现有邮购代码。
真的希望有人能帮我解决这个问题!昨晚我睡得很晚,尝试了不同的事情,但无法掌握它。从字面上看,这可能是我刚刚忽略的东西,一些简单的东西——这是我的希望。话又说回来,我怀疑这可能是更技术性的东西。
特雷弗
最佳答案
SOAP 服务器似乎正在为已发布的 WSDL 中的服务返回 http URL(而它们应该是 https)。如果您控制 SOAP 服务器,则应该修复 WSDL 生成器。 (如果它是用 Delphi 编写的,则很可能只是在其 TWSDLHTMLPublish.PublishOptions
属性中缺少 poPublishLocationAsSecure
选项。客户端上的一个可能的解决方法可能是直接使用 (https) URL,而不依赖于已发布的 WSDL。
关于Delphi Soap 请求程序 - 访问 TLS1.1/TLS1.2 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38715870/
是否可以使用 OpenSSL 或其他工具通过 TLS 建立 TLS 连接? 如果可能,每个级别的证书是否需要不同? 最佳答案 这在理论上应该工作得很好,但我不能确定 OpenSSL 或其他东西是否会轻
在我的 java 代码中,我正在使用命令创建 SSL 上下文的一个实例 SSLContext ctx = SSLContext.getInstance("TLS"); 但是在我的 tomcat 服务器
在我的 java 代码中,我正在使用命令创建一个 SSL 上下文实例 SSLContext ctx = SSLContext.getInstance("TLS"); 但在我的 tomcat 服务器中,
范围:这是一个具有一个 channel 的网络,该 channel 由 3 个组织组成,每个组织 1 个 anchor 节点,每个组织 1 个 CA 和每个组织 1 个 MSP。 我在我的 Hyper
无法找到用于在 iis 上启用/禁用 tls 的特定设置。启用/禁用 ssl 是否与启用/禁用 tls 相同? 我浏览了一些博客,发现 SSL 是 TLS 的前身,旧版本的 SSL 已被弃用。但我无法
最近,我一直在为基于物联网的项目评估不同的 API 网关 (API GW) 选项。这样做的目的是找到一个足够好的解决方案来执行设备和 API GW 的相互 TLS (mTLS) 身份验证。 我尝试过的
几个月来,我的 Web 应用程序在不同版本的 IE/Firefox/Chrome 上运行良好。我的应用程序在 IIS 10.0 上运行。当我从 Windows 7 框 (IE 11.0.***) 中点
我有一个在 Java 7 上运行的 HTTPS 网络服务。我需要进行更改,以便此服务仅接受 TLS1.2 连接并拒绝 SSL3、TLS1.0 和 TLS1.1。 我添加了以下 Java 参数,使 TL
我在资源管理器不显示网站时遇到问题:“无法显示此页面。在高级设置中打开 TLS 1.0、TLS 1.1 和 TLS 1.2”。 我在 chrome 中调试了证书并说“连接是使用 aes_128_cbc
我正在与 5 个订购者、1 个组织和 2 个同行建立我的网络。还有 1 个 cli 和 1 个 ca。 我从 1 个排序者扩展到 5 个实现 Raft 的排序者。这就是为什么我想扩展我的网络并对多个对
当k8s集群开启了TLS认证后,每个节点的kubelet组件都要使用由kube-apiserver的CA签发的有效证书才能与kube-apiserver通信;当节点非常多的时候,为每个节点都单独签署证
我正在尝试使用 pjsip 安装中的 pjsua 程序在两个虚拟机之间进行安全调用。我通过以下方式在每个节点上启动程序: pjsua-x86_64-unknown-linux-gnu --use-tl
我开发的软件应用程序使用 gRPC 在客户端和服务器之间建立双向流。 我只在 java 中寻找类似于这张票的答案的东西:How to enable server side SSL for gRPC?
我正在尝试调试与 TLS 相关的问题。TLS 在两个应用程序客户端 A 和服务器 B 之间设置。A 和 B 都交换了证书,我已经验证证书具有正确的扩展名,并且还通过其根 CA 成功验证。叶证书的根 C
“Java 1.7 TLS 1.1 服务器”和“Java 1.8 客户端”之间的 SSL/TLS 握手在我的环境中失败,服务器端出现以下异常: java.security.NoSuchAlgorith
我正在尝试了解 Docker ,但我不断收到神秘的(对我而言)错误消息。 可能最简单的例子是尝试打印我安装的 Docker 版本: $ sudo docker version Client versi
这是我第一次使用 Amazon Lighsail、Wordpress Multisite、Bitnami甚至使用 Let's Encrypt;现在似乎一切正常,除了我的虚拟主机文件中的 SSL 指令。
我有一个 MariaDB "M"。在同一台机器上有一个应用程序“A”,它可以访问它。在不同的服务器上,另一个应用程序“B”也在访问它。 现在我想在 MariaDB 上启用 TLS 以保护连接 B ->
我正在寻找通过代理连接到一些 HTTPS/TLS 站点,其中到代理本身的连接也是通过 HTTPS/TLS 建立的,来自一个高度依赖请求的 python 应用程序。 urllib3(因此 request
现在我正在努力改变 EMQtt 和 Erlang MQTT 代理,以便我可以使用预共享 key 而不是非对称方法执行 TLS 握手。 到目前为止,我几乎遍历了源代码中的每个文件,但找不到任何加密函数。
我是一名优秀的程序员,十分优秀!