AS2 配置、限制和错误消息 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AS2 配置、限制和错误消息

本节介绍使用适用性声明 2 (AS2) 协议的传输所支持的配置,包括可接受的密码和摘要。本节还介绍了 AS2 传输的限制和已知问题。还提供了您可能从 AS2 文件传输中收到的各种错误代码。

AS2 支持的配置

签名、加密、压缩、MDN

对于入站和出站转移,以下项目是必填项或可选项目:

  • 加密-必需(对于 HTTP 传输,这是目前支持的唯一传输方法)

  • 签名-可选

  • 压缩-可选(目前唯一支持的压缩算法是 ZLIB)

  • 邮件处置通知 (MDN) — 可选

密码

支持以下密码:

  • 入站转移 — AES128_CBC、AES192_CBC、AES256_CBC、3DES(仅用于向后兼容)

  • 出站转账 — AES128_CBC、AES192_CBC、AES256_CBC

摘要

支持以下摘要:

  • 入站签名和 MDN — SHA1、SHA256、SHA384、SHA512

  • 出站签名和 MDN — SHA1、SHA256、SHA384、SHA512

MDN

对于 MDN 响应,支持某些类型,如下所示:

  • 入站传输-同步和异步

  • 出站转账-仅限同步

  • SMTP(SMTP)协议(SMTP)(MDN)-不支持

运输

  • 入站传输-HTTP 是目前唯一支持的传输,您必须明确指定。

    注意

    如果您需要使用 HTTPS 进行入站传输,则可以在Application Load Balancer 或Network Load Balancer 上的 TLS 或 Network Load Load Load 有关更多信息,请参阅TlsSessionResumptionMode

  • 出站传输-如果使用 HTTP,则还必须指定加密算法。如果指定 HTTPS,则应为加密算法指定 NONE

将 AS2 端点设置为端口 443 (HTTPS)

Amazon Transfer FamilyAS2 服务器目前仅提供通过端口 5080 的 HTTP 传输。但是,您可以使用您选择的端口和证书在 Transfer Family 服务器 VPC 终端节点之前终止负载均衡器上的 TLS。这允许您让传入的 AS2 消息使用 HTTPS。

先决条件

  • VPC 必须与您的 Transfer 系列服务器位于同一Amazon Web Services 区域个 VPC 中。

  • 您的 VPC 的子网必须位于您要使用服务器的可用区内。

    注意

    每台 Transfer Family 服务器最多可以支持三个可用区。

  • 在与服务器相同的区域中最多分配三个弹性 IP 地址。或者,您可以选择自带 IP 地址范围(BYOIP)地址范围(BYOIP),您也可以选择自带 IP 地址范围(B

    注意

    弹性 IP 地址的数量必须与您在服务器终端节点上使用的可用区数量相匹配。

配置您的Network Load Balancer

在您的 VPC 中设置一个面向互联网的网络负载均衡器(NLB)在您的 VPC 中设置一个面向互联网的

创建Network Load Balancer 并将服务器的 VPC 终端节点定义为负载均衡器的目标
  1. 通过 https://console.aws.amazon.com/ec2/ 打开亚马逊弹性计算云控制台。

  2. 在导航窗格中,选择Loa d Balanc er,然后选择创建负载均衡器

  3. Network Load Balancer 下,选择 Create(创建)。

  4. 在 Settings(基本配置)部分中,输入以下信息:

    • 对于 Name(名称),为负载均衡器输入一个描述性名称。

    • 在 S chem e 中,选择面向互联网

    • 对于每个子网的 IPv4 地址,选择您分配的弹性 IP 地址之一。

  5. Network Mettings(网络映射)部分中,输入以下信息:

    • 对于 VPC,选择您创建的 Azon VPC。

    • 在 “映射” 下,选择与公有子网关联的可用区,这些子网位于与服务器终端节点一起使用的同一 VPC 中。

    • 对于每个子网的 IPv4 地址,选择您分配的弹性 IP 地址之一。

  6. 在 Load Settings(监听器和路由)部分中,输入以下信息:

    • 对于协议,选择 TLS

    • 对于端口,输入 5080

    • 对于 “默认操作”,选择 “创建目标组”。有关创建新目标组的详细信息,请参阅创建目标组

    创建目标组后,在 Settings(默认操作字段中)字段中输入其名称。

  7. 在 “安全侦听器设置” 部分,在 “默认 SSL/TLS 证书” 区域中选择您的证书

  8. 选择创建负载均衡器来创建您的 NLB。

  9. (可选)打开Network Load Balancer 访问日志以保持完整的审计跟踪,如网络负载均衡器的访问日志中所述。

    我们建议执行此步骤,因为 TLS 连接在 NLB 终止,因此 Transfer Family AS2 CloudWatch 日志组中反映的源 IP 地址是 NLB 的私有 IP 地址,而不是贸易伙伴的外部 IP 地址。

设置负载均衡器后,客户端通过自定义端口侦听器与负载均衡器通信。然后,负载均衡器通过端口 5080 与服务器通信。

创建目标组

创建目标组
  1. 在前面的步骤中选择创建目标组后,您将转到 “为新目标组指定组详细信息”。

  2. 在 Settings(基本配置)部分中,输入以下信息。

    • “选择目标类型” 中,选择 IP 地址

    • 对于 Target group name (目标组名称),输入目标组的名称。

    • 对于协议,选择 TLS

    • 对于端口,输入 5080

    • 对于 IP 地址类型,请选择 IPv4

    • 对于 VPC,选择您为 Transfer Family AS2 服务器创建的亚马逊 VPC。

  3. 在 “运行He alth 检查” 部分中,选择 TCP 作为He alth 检查协议

  4. 选择 Next(下一步)。

  5. 在 C 注册目标页面输入以下信息:

    • 对于网络,确认已选择您为 Transfer Family AS2 服务器创建的 Amazon VPC。

    • 对于 IPv4 地址,请输入 Transfer Family AS2 服务器端点的私有 IPv4 地址。

      如果您的服务器有多个终端节点,请选择添加 IPv4 地址以添加另一行以输入另一个 IPv4 地址。重复此过程,直到输入服务器所有终端节点的私有 IP 地址。

    • 确保 “端口” 设置为5080

    • 在下方选择 “包含为待处理”,将您的参赛作品添加到 “审核目标” 部分。

  6. 在 “审查目标” 部分,查看您的 IP 目标。

  7. 选择创建目标组,然后返回创建 NLB 的过程,并在指示的位置输入新的目标组。

测试从弹性 IP 地址访问服务器

使用弹性 IP 地址或Network Load Balancer 的 DNS 名称通过自定义端口Connect 服务器。

重要

使用负载均衡器上配置的子网的网络访问控制列表(网络 ACL)管理客户端 IP 地址对服务器的访问。网络 ACL 权限是在子网级别设置的,因此规则适用于使用该子网的所有资源。您无法使用安全组控制来自客户端 IP 地址的访问,因为负载均衡器的目标类型设置为 IP 而不是实例。这意味着负载均衡器不保留源 IP 地址。如果网络负载均衡器的运行状况检查失败,则意味着负载均衡器无法连接到服务器端点。要排查,请检查以下内容:

  • 确认服务器端点的关联安全组允许来自负载均衡器上配置的子网的入站连接。负载均衡器必须能够通过端口 5080 连接到服务器端点。

  • 确认服务器的状态为 “机”。

AS2 的限制和限制

限制

AS2 文件传输有以下限制。

AS2 限制
名称 默认值 可调整
每秒入站 AS2 请求数 25
每台服务器正在处理入站 AS2 请求 100
每个连接器每秒的最大文件传输请求数 3
每个文件传输请求的最大文件数 10
每个连接器的出站 AS2 请求正在处理中 100
最大文件大小(压缩或未压缩) 50 MB
不活动超时 350 秒
每个账户的最大合作伙伴配置文件数 1000(每个合作伙伴档案最多 10 个证书:不可调整)
每个账户的最大证书数 1000
每个账户的最大连接器数 100
每台服务器的最大协议数 100

已知限制

  • 不支持服务器端 TCP 保持活动状态。除非客户端发送 keep-alive 数据包,否则 350 秒处于非活动状态后,连接会超时。

  • 要使有效的协议被服务接受并出现在亚马逊 CloudWatch日志中,消息必须包含有效的 AS2 标头。

  • 接收来自Amazon Transfer Family AS2 的消息的服务器必须支持 RFC 6211 中定义的用于验证消息签名的加密消息语法 (CMS) 算法保护属性。某些较旧的 IM Sterling 产品不支持该属性。

  • 重复的消息 ID 会导致 “已处理/警告:重复文档” 消息。

  • 向贸易伙伴的 HTTPS 端点发送 AS2 消息或异步 mDN 时,消息或 mDN 必须使用由信任的证书颁发机构 (CA) 签名的有效 SSL 证书Amazon Transfer Family。(有关可信 CA 的列表,请参阅 https://www.amazontrust.com/repository/。) 当前不支持自签名证书。

  • 端点必须支持 TLS 版本 1.2 协议和安全策略允许的加密算法(如中所述使用安全策略)。

  • 目前不支持双向 TLS (mTLS)。

  • 目前不支持 AS2 版本 1.2 中的多个附件和证书交换消息 (CEM)。

  • 当前不支持基本身份验证。

AS2 错误代码

AS2 错误代码
代码 错误 描述
DECRYPT_FAILED 无法解密消息 Message-ID。确保合作伙伴拥有正确的公共加密密钥。 解密失败。确认合作伙伴使用有效证书发送了有效负载,并且加密是使用有效的加密算法执行的。
ERROR_DECRYPT_UNSUPPORTED_ENCRYPTION_ALG 使用不支持的算法请求 SMIME 有效载荷解密,ID 为 Encryption-ID 远程发送方发送了带有不支持的加密算法的 AS2 有效负载。发件人必须选择支持的加密算法Amazon Transfer Family。
DECRYPT_FAILED_INVALID_SMIME_FORMAT 无法解析封装的 MimePart。 MIME 负载已损坏或采用不支持的 SMIME 格式。发送方应确保他们使用的格式得到支持,然后重新发送有效负载。
DECRYPT_FAILED_NO_DECRYPTION_KEY_FOUND 未找到匹配的解密密钥。 没有为合作伙伴个人资料分配与消息匹配的证书,或者与消息匹配的证书现已过期或不再有效。您必须更新合作伙伴资料并确保其中包含有效证书。
ENCRYPTION_FAILED 无法加密文件名 要发送的文件无法加密。确认该文件位于预期 AS2 位置,并且该位置Amazon Transfer Family有权读取该文件。
VERIFICATION_FAILED AS2 消息 Message-ID 的签名验证失败,或者 MIC 代码不匹配。 检查发件人的签名证书是否与远程配置文件的签名证书相匹配。还要检查 MIC 算法是否兼容Amazon Transfer Family。
SIGNING_FAILED 签名文件失败。 要发送的文件无法签名,或者无法执行签名。确认该文件位于预期 AS2 位置,并且该位置Amazon Transfer Family有权读取该文件。
DECOMPRESSION_FAILED 解压缩消息失败。 要么发送的文件已损坏,要么压缩算法无效。重新发送消息并验证是否使用了 ZLIB 压缩,或者在未启用压缩的情况下重新发送消息。
AGREEMENT_NOT_FOUND 未找到协议。 要么未找到协议,要么该协议与不活跃的配置文件相关联。更新 Transfer Family 服务器中的协议,以包括有效的配置文件。
CONNECTOR_NOT_FOUND 找不到连接器或相关配置。 未找到连接器,或者连接器与非活动配置文件相关联。更新连接器以包含有效的配置文件。
INSUFFICENT_MESSAGE_SECURITY_未加密 需要加密。 合作伙伴向 Transfer Family 发送了一封未加密的消息,该消息不受支持。发送者必须使用加密的有效载荷。
DUPLICATE_MESSAGE 重复或重复处理的步骤。 有效载荷具有重复的处理步骤。例如,有两个加密步骤。只需一个步骤即可重新发送消息,完成签名、压缩和加密。
INVALID_REQUEST 消息标题有问题。 检查as2-fromas2-to字段。确保 MDN 格式的原始消息 ID 是准确的。还要确保消息 ID 格式没有缺少任何 AS2 标头。
UNABLE_TO_RESOLVE_HOSTNAME 无法解析主机名主机名 Transfer Family 服务器无法使用公共 DNS 服务器解析合作伙伴的主机名。检查配置的主机是否已注册以及 DNS 记录是否有时间发布。
HTTP_ERROR_RESPONSE_FROM_PARTNER

对于 ID= m essage-id 的消息,partner-URL 返回了状态 400。

与合作伙伴的 AS2 服务器通信返回了意外的 HTTP 响应代码。合作伙伴或许能够从其 AS2 服务器日志中提供更多诊断。
INVALID_ENDPOINT_PROTOCOL 仅支持 HTTP 和 HTTPS。 在 AS2 连接器配置中,必须指定 HTTP 或 HTTPS 作为协议。
UNABLE_RESOLVE_HOST_TO_IP_ADDRESS 无法将主机名解析为 IP 地址。 Transfer Family 无法在 AS2 连接器中配置的公共 DNS 服务器上执行 DNS 到 IP 地址的解析。更新连接器以指向有效的合作伙伴 URL。
UNABLE_TO_CONNECT_TO_REMOTE_HOST_OR_IP 与端点的连接超时。 Transfer Family 无法与已配置伙伴的 AS2 服务器建立套接字连接。检查合作伙伴的 AS2 服务器在配置的 IP 地址上是否可用。
SEND_FILE_NOT_FOUND 未找到文件路径文件路径 Transfer Family 无法在发送文件操作中找到该文件。检查配置的主目录和路径是否有效,以及 Transfer Family 是否具有该文件的读取权限。