借助知行之桥EDI系统实现AS2连接,在开始测试之前,首先需要确认企业已经开设了外网可访问的IP或者域名,开通专用的端口。其次还需要确认以下几点:
1.企业提供给交易伙伴的配置信息是否正确
2.企业在知行之桥EDI系统中配置的交易伙伴信息是否正确
3.交易伙伴是否已经配置好企业的AS2连接信息
4.交易双方是否设置了防火墙
报错1
“The receipt signature could not be verified: Message digest mismatch in signature”
造成原因
MDN 接收签名包含一个消息摘要,以确保消息的内容在传输过程中没有被更改。摘要不匹配可能表明 MDN 在被接收之前已被更改,或者在交易伙伴端未正确生成。
有时,这个错误可能是由杀毒安全软件不正确地删除了 MDN 回执的一部分引起的。ESET 的应用程序协议过滤功能存在一个已知问题,其中折叠的 MDN 消息头可能会由于删除了空格而无效。
解决方案
首先,查看交易伙伴返回的 MDN 是否存在明显问题。下载引发该错误的交易的 .mdn 文件,然后将其与问题说明一起发送至 support@kasoftware.cn 或独立进行问题排查。
与交易伙伴联系,确认他们使用的 AS2 软件也可能会有所帮助。知行之桥可与任何经过 Drummond 认证的 AS2 软件进行互操作。
报错2
“The receipt signature could not be verified: The certificate specified does not match the signature”
造成原因
MDN 回执使用私钥签名,并且此签名需使用相应的公钥进行认证。该错误表明为来自此交易伙伴的签名的公钥不正确。
解决方案
通常,用于加密的同一公钥证书也用于认证签名。在这种情况下,请检查 AS2 端口中设置->加密证书下设置的证书,以确保已为此交易伙伴正确配置了证书。
有时,交易伙伴将使用单独的证书进行签名。在这种情况下,请将高级设置->交易伙伴签名证书设置为与交易伙伴的签名密钥相匹配的公钥证书。
报错3
“The receipt signature could not be verified: Message digest was encrypted with unknown algorithm”
造成原因
在仅支持 SMIME 加密 v3.1 的较早版本的应用程序中,这是一个已知问题。如果 MDN 包含使用 SMIME 3.2 加密的消息摘要,则将引发此错误。
解决方案
知行之桥的所有当前版本,包括发布的 v2016 版本,均支持 SMIME 3.2。较旧的版本将需要进行升级才能解决此错误。
报错4
“MDN Error: Authentication failed”或者“MDN Error: Signature Authentication failed: Could not authenticate signer’s identity”
造成原因
该错误包含在 MDN 响应中,表明交易伙伴无法认证 AS2 请求中的签名。这表明交易双方之间一般证书不匹配。
解决方案
检查在知行之桥的 AS2 配置文件中配置的私钥证书是否正确,以及在交易伙伴端配置了匹配的公钥证书。
报错5
“MDN Error: Unexpected processing error”
造成原因
此错误由交易伙伴的系统抛出,并作为 MDN 的一部分返回,以指示处理 AS2 请求失败。此错误是一般错误,当问题与签名,加密或压缩无关时,可能会出现此错误。
解决方案
由于此错误不包括明确的调试信息,因此应与交易伙伴联系,获取有关导致故障的原因的更多信息。
报错6
“System Error: Connection refused”
造成原因
此错误是一般的网络连接问题。当尝试连接到未处于主动侦听状态的服务器时,将抛出该错误。这可能表明服务器已关闭,或者正在尝试连接到错误的 URL。
解决方案
检查目标 URL 是否正确。如果错误仍然存在,请与目标系统的服务器管理员联系以确定目标服务器是否已关闭,或者他们可以通过有关此问题了解更多信息。
报错7
“Connection failed: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond”或者“Connection timed out”
造成原因
此错误是一般的网络连接问题。当到服务器的连接尝试在一段时间(通常为 60 秒)内未答复时,将引发该错误。这通常是防火墙干扰服务器响应的结果,但也可能是连接参数不正确。
解决方案
检查防火墙是否阻止了服务器响应的返回。如果服务器也位于防火墙后面,请检查发送 AS2 消息的 IP 地址是否已列入防火墙白名单。
如果已排除防火墙设置,请检查目标 URL 是否正确。
报错8
“Synchronous MDN expected but not received”
造成原因
这是一个一般错误,提示对 AS2 请求的响应不是 MDN。这可能是未按预期将 AS2 请求发送到 AS2 服务器。也可能是返回了 MDN 文件,文件已损坏,也可能引发此错误,因此知行之桥无法将其识别为 MDN。
解决方案
检查目标 URL 是否正确。然后,检查防火墙是否可能从 MDN 剥离内容,从而阻止了知行之桥正确解析。如果不清楚 MDN 的问题,可以查找与失败的交易关联的 .mdn 文件,并将其与问题说明一起提供给 support@kasoftware.cn。
报错9
“Unsigned MDN received, but signed MDN requested”
造成原因
当预期从交易伙伴处收到的响应是签名的MDN,实际却收到其他内容时,将出现此错误。可以通过 AS2 端口中的 MDN回执->安全性设置来切换 MDN 中的签名状态。
解决方案
检查失败事务中 .MDN 日志文件的内容。 该文件将包含服务器回复,无论是未签名的 MDN 还是某些非 MDN 响应。 .MDN 日志文件的内容将指示接下来的步骤; 如果服务器响应根本不是 MDN,则它可能包含错误或指示发送 AS2 请求的接口根本不是 AS2 接收接口。 如果 .MDN 日志文件包含未签名的 MDN,则表明贸易伙伴的系统中存在配置问题。
报错10
“Unable to find valid certification path to requested target”
造成原因
该错误是在 Java 版本中的底层 Java 安全提供程序引发的,它标识目标 Web 服务器提供的 TLS 服务器证书不受系统信任。
解决方案
通过将交易伙伴证书-> TLS 服务器证书设置为服务器的公钥证书或 Any Certificate ,可以在 AS2 端口中覆盖信任的 TLS 服务器证书。可以通过大多数 Web 浏览器连接到 Web 服务器来获取服务器的证书。
报错11
“Key does not exist”
造成原因
当多个线程试图访问同一私钥时会引发该错误,这是 Windows CryptoAPI 中的一个已知问题。默认情况下,知行之桥使用 Windows CryptoAPI 执行安全性操作,例如加载私钥证书。
解决方案
知行之桥自带了加密操作的内部实现,可以启用此设置实现来解决 Windows CryptoAPI 的限制。打开知行之桥安装目录中的 “data” 文件夹,找到相关 AS2 端口的文件夹,然后在文本编辑器中打开 “port.cfg” 文件。为了在加载证书时启用托管安全性 API,请确保存在以下行:
CertUseManagedSecurityAPI = true
报错12
“Input string was not in a correct format”
造成原因
这表明对于 AS2 端口配置的某些方面,字符串认证失败。通常,接收 URL 设置或事件脚本中的某些字符串处理是引发错误的根源。
解决方案
检查接收 URL 是以有效的 HTTP 前缀开头的(对于纯文本连接为 “http://”,对于 TLS 连接是为 “https://”),并且不包含任何空格。
如果端口的事件中存在脚本(例如发送前,接收后),请检查是否存在执行无效的字符串处理。可以将脚本提供给 support@kasoftware.cn,知行 EDI 技术团队可以协助检查是否是脚本引起的问题。
报错13
“500 Internal Server Error”
造成原因
此 HTTP 错误表示一般的服务器端故障。成功接收到 AS2 消息,但是在处理该消息时发生了一些错误,并且没有其它调试信息可用。
解决方案
此问题相关的唯一可能是客户端设置的目标 URL。如果 URL 正确,则必须查阅服务器端日志,了解有关导致处理失败的原因的更多信息。请咨询交易伙伴,以查看这些服务器日志是否可用。
报错14
“404 Not Found”
造成原因
此 HTTP 错误表明在目标 URL 上找不到资源。这通常表示 URL 的前半部分正确(主机,端口),但 URL 的后半部分(资源路径)未被识别。
解决方案
检查目标 URL 中的资源路径是否正确。可能值得与交易伙伴确认预期的资源路径。
报错15
“401 Unauthorized”
造成原因
此 HTTP 错误表明访问指定 URL 需要授权。这可能是需要 TLS 客户端身份认证或 HTTP 身份认证。
解决方案
如果需要 TLS 客户端身份认证,请在端口配置的高级设置-> TLS客户端身份认证部分中设置适当的 TLS 证书。如果需要 HTTP 身份认证,请在端口配置的高级 -> HTTP 身份认证部分中设置正确的凭证。
要查看是否需要 HTTP 身份认证,请使用 Web 浏览器测试与目标 URL 的连接,并注意提示输入用户名/密码的提示。
报错16
“Incoming request did not match a configured trading partner profile”
造成原因
当知行之桥收到 AS2 消息时,应用程序将尝试根据配置的 AS2 ID 将消息路由到指定的 AS2 端口。此错误表明找不到与 AS2 消息中匹配的发送方和接收方的 AS2 ID的端口。
解决方案
检查在知行之桥的 AS2 个人设置中配置的 AS2 ID 和发生错误的特定交易伙伴配置的 AS2 端口。
报错17
“Error during handshake: The token supplied to the function is invalid”
造成原因
这是 WinSock 库(Windows 套接字)返回的 TLS 错误之一。通常,与需要 HTTPS 连接的服务器尝试进行 HTTP 连接时,会发生此错误。
解决方案
与交易伙伴确认 AS2 连接应通过 HTTP 还是 HTTPS 进行,并检查目标 URL 是否具有正确的前缀和端口。
报错18
“Error during handshake: the buffer supplied to a function was too small”
造成原因
这是系统 WinSock 库返回的 TLS 错误之一,并且是某些服务器操作系统上 Windows CryptoAPI 的已知错误。使用 TLS 1.2 和两个特定的密码套件时,会发生此问题:
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 RLS_DHE_RSA_WITH_AES_256_GCM_SHA384
解决方案
知行之桥自带加密操作的内部实现,可以启用此设置实现来解决 Windows CryptoAPI 的限制。在资源管理器中打开到知行之桥安装目录 “data” 文件夹下的 “profile.cfg” 文件。在此文件的 [Application] 部分下加入以下行:
UseManagedSecurityAPI = true
作为使用托管安全提供程序的替代方法,请使用第三方系统加密工具在操作系统级别禁用两个有影响的密码。
报错19
“Error during handshake: the function requested is not supported”
造成原因
这是系统 WinSock 库返回的 TLS 错误之一,表示客户端和服务器之间支持的 SSL/TSL 版本不匹配。
解决方案
可以在 AS2 端口中的高级 -> 其它设置 -> 启用 TLS下选择要启用 TLS 版本。与交易伙伴确认支持的 TLS/SSL 版本,并选择合适的协议进行配置。
以上便是使用知行之桥EDI系统建立AS2连接过程中可能会遇到的常见错误及其原因和解决方案。如果您当前遇到的问题并没有包含在上述列表中,请邮件联系我们的运维团队:support@kasoftware.cn 。
了解更多 EDI 信息,请参阅: EDI 是什么?
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。