> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 配置 AS2 连接

> 在知行之桥中设置与交易伙伴的 AS2 连接，包括个人配置和端口设置。

export const companyName = "知行软件";

export const siteNameShort = "知行之桥";

export const siteName = "知行之桥";

## 概述

{siteName} 支持和交易伙伴建立 AS2 连接，仅需简单的两步。首先，在 AS2 个人配置中配置本地 AS2 详情（标识符、私钥证书等等）。然后，在 [工作流](/26.2/self-hosted/zh/flows/flows) 页面上创建一个 AS2 端口，并配置特定交易伙伴的 AS2 详情。

### 视频资源

观看此短视频，了解如何快速设置 AS2 端口。

<iframe width="560" height="315" src="//player.bilibili.com/player.html?aid=955541298&bvid=BV16W4y1Z7GB&cid=1185848690&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" />

## AS2 个人配置

[个人配置页面](/26.2/self-hosted/zh/getting-started/administration/profiles) 包含一个 **AS2** 部分，用于配置本地 AS2 详情。主要的配置细节包括：

* AS2 标识符（该值向交易伙伴标识 {siteNameShort} 是一个 AS2 实体）
* 私钥证书（用于解密传入消息和签署传出消息的证书）

点击导航栏上的 **个人配置** 来配置 AS2 个人配置设置，具体描述如下。

### AS2 标识符

AS2 标识符包含在传出的 AS2 消息中，并识别您为发送方。此外，传入的 AS2 消息必须寻址到此标识符才能被应用程序接受。AS2 标识符有一些限制：例如，不能包含空格字符，且区分大小写。除这些限制（以及交易伙伴施加的任何限制）外，AS2 标识符可以是任何双方约定的值。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_1.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=cad4ed03901f960b655f45a66b498619" alt="AS2 identifier configuration" width="600" data-path="public/images/config_as2_1.png" />

### 私钥证书

私钥证书用于数字加密（解密和数字签名）。私钥证书包含一个与公钥配对的私钥。当交易伙伴使用您的公钥来保护 AS2 消息时，它能确保只有您可以使用配对的私钥解密该消息。

{siteNameShort} 支持 PKCS#12 格式（.pfx 或 .p12 文件）的私钥证书，以及 PEM 编码的公钥证书（.cer 文件）。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_1a.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=9bfda57168e13791e8ad0a5038198f95" alt="Private certificate configuration" width="600" data-path="public/images/config_as2_1a.png" />

#### 创建新证书对

如果还没有用于 AS2 安全的私钥和公钥对，{siteNameShort} 支持创建自签名证书。自签名证书在 AS2 领域很常见，但某些交易伙伴可能要求从受信任的证书颁发机构 (CA) 购买证书。

要创建新的证书对，请在 **私钥证书** 下拉菜单中选择 **创建证书**：

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config-as2_create_cert.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=c06a9b4d009f5cc1a45481bb80381171" alt="Create Certificate option in the Private Certificate dropdown" width="600" data-path="public/images/config-as2_create_cert.png" />

以下字段是必填的：

* **常用名 (Common Name)**：使用该证书的服务器的主机名。它与序列号一起用于标识证书。
* **文件名**：证书文件的名称，带有 `.pfx` 扩展名。相应的公钥证书将被赋予相同的名称，扩展名为 `.cer`。
* **序列号**：唯一的序列号，与常用名结合使用以标识证书。
* **密码**：访问私钥所需的密码。
* **有效期**：决定证书的过期日期。
* **密钥长度**：选择创建 512、1024、2048 或 4096 位密钥。
* **公钥类型**：选择创建 X.509、OpenSSH 或 SSH2 公钥。
* **签名算法**：对证书应用数字签名以验证其真实性时使用的算法。

其余字段为可选字段，但可以使用它们为证书添加进一步的上下文和元数据。

创建完成后，证书文件将放置在应用程序的 `data` 目录中。该目录中的证书文件将出现在应用程序中任何证书类型设置的下拉列表中。

### 应用程序 URL

AS2 个人配置的 **应用程序 URL** 部分定义了交易伙伴向 {siteNameShort} 发送 AS2 消息时可公开访问的端点。在 **设置 > 高级** 页面的 [附加设置](/26.2/self-hosted/zh/getting-started/administration/settings/additional-settings) 部分设置 **基准 URL** 字段，指向托管 {siteNameShort} 的机器或网络的基准 URL（例如 `https://mydomain.com/{siteNameShort}`）。以下端点是根据此域名值和应用程序 Web 服务器监听的端口生成的：

* 异步 MDN URL（如果需要异步 MDN，交易伙伴应将异步 [MDN 回执](/26.2/self-hosted/zh/connectors/as2#mdn-receipts) 发送至此端点）
* 接收 URL（交易伙伴应将 AS2 消息发送至此端点）

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config-as2_app_urls.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=c61224781a7f0f16dec0ce3afbe2d8f7" alt="Application URLs section of the AS2 profile" width="600" data-path="public/images/config-as2_app_urls.png" />

如果勾选 **在 Public.rst 发布 AS2 个人配置设置**，交易伙伴可以在 **公开 URL** 显示的端点查看 AS2 个人配置详情。将此 URL 发送给交易伙伴可以简化交换 AS2 配置详情的过程。

## AS2 端口配置

配置完 AS2 个人配置后，导航至 **工作流** 页面并创建一个 AS2 端口实例。每个 AS2 端口都配置了单个交易伙伴的 AS2 详情。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_2.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=e0e790f16b829eb563702d2f367a6a6f" alt="AS2 connector on the Flows page" width="600" data-path="public/images/config_as2_2.png" />

### 必填配置设置

AS2 配置详情必须由交易伙伴提供。交易伙伴至少必须提供以下详情：

* AS2 标识符
* 传出 AS2 消息应发送到的 URL 或端点
* 用于加密的公钥证书或密钥

在端口 [设置](/26.2/self-hosted/zh/connectors/as2#settings-tab) 选项卡的 **交易伙伴信息** 和 **交易伙伴证书** 部分配置这些值。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_3.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=cb6a7f1e21e22873003fc68208bd159b" alt="Trading Partner Info configuration" width="600" data-path="public/images/config_as2_3.png" />

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_3a.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=9169caa5a3f6adc760290787ddad7756" alt="Trading Partner Certificates configuration" width="600" data-path="public/images/config_as2_3a.png" />

### 附加配置设置

伙伴可能会有额外要求，包括：

* 同步或异步 MDN（在 **设置** 选项卡的 **请求 MDN 回执** 部分配置）
* 用于连接 HTTPS 服务器的 TLS 服务器证书（在 **设置** 选项卡的 **交易伙伴证书** 部分配置）
* 特定的加密或签名算法（在 [高级](/26.2/self-hosted/zh/connectors/as2#advanced-tab) 选项卡上的 **加密算法** 和 **签名算法** 中配置）
* 用于验证签名的独立证书（除加密证书外）（在 **高级** 选项卡的 **伙伴签名证书** 中配置）

### 测试 AS2 连接

完成交易伙伴的配置后，可以通过生成测试文档来测试传出连接。导航至 AS2 端口的 **交易** 选项卡，选择 **更多 > 创建测试文件**。

除非在 [自动化](/26.2/self-hosted/zh/connectors/as2#automation-tab) 选项卡禁用了 **发送自动化**，否则端口会自动尝试处理这些测试文件。发送测试文件到配置的伙伴时发生的任何错误都会记录在 **交易** 选项卡，包括包含错误上下文和详情的日志文件。要进一步诊断连接问题，请使用 **高级** 选项卡上的 **日志级别** 和 **日志消息** 选项。

成功处理的文件在 **交易** 选项卡显示为绿色的 **已发送** 状态。成功发送测试文件即证明 AS2 配置正确。

## 向交易伙伴提供 AS2 详情

正如交易伙伴必须提供其 AS2 配置详情以便为其配置 AS2 端口一样，您也必须向伙伴提供 AS2 配置详情。

至少需要向伙伴提供：

* 您的 AS2 标识符
* 您的公钥或加密证书
* 您的接收 URL

### 公开 URL

向伙伴提供此信息最简单的方法是启用 AS2 个人配置中 [应用程序 URL](#应用程序-url) 处的 **在 Public.rst 发布 AS2 个人配置设置** 选项。**公开 URL** 字段包含一个可以提供给伙伴的链接：通过此链接，伙伴可以查看 AS2 配置设置并下载公钥或加密证书。

<Note>**公开 URL** 的值与 **接收 URL** 字段不同，后者是交易伙伴发送 AS2 消息的地方，而 **异步 MDN URL** 字段是交易伙伴发送异步 MDN 回执的地方（如果需要异步 MDN）。</Note>

### 手动提供详情

或者，也可以手动向伙伴发送这些详情。在 [AS2 个人配置](#as2-个人配置) 中查找 **AS2 标识符** 和 **接收 URL** 的值。

要向伙伴发送公钥或加密证书，请在磁盘上找到 `.cer` 文件：

* 导航至 {siteNameShort} 根安装目录
* 打开根目录中的 `data` 文件夹
* 找到与 AS2 个人配置中 **私钥证书** 同名的 `.cer` 文件（文件名相同，但扩展名为 `.cer` 而非 `.pfx`）
* 复制 `.cer` 文件并共享给伙伴

## 发送 AS2 消息

成功建立传出 AS2 连接后，即可安全可靠地向交易伙伴发送文件。

### 交易选项卡

放置在 AS2 端口 **交易** 选项卡中的文件将被端口排期发送。

如果 **发送自动化** 在 **自动化** 选项卡上已启用（默认启用），端口将自动轮询此文件夹以处理文件。或者，也可以从 **交易** 选项卡手动发送文件。勾选目标文件左侧的复选框，然后点击 **发送** 按钮。

还可以使用 **交易** 选项卡将文件上传到发送文件夹，如下图所示：

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config-as2_upload_files.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=2405d68c525ccef7ba3a220ec4c71f32" alt="Uploading files via the Transactions tab" width="600" data-path="public/images/config-as2_upload_files.png" />

### 作为工作流的一部分发送

在大多数工作流中，文件在由 AS2 端口发送出去之前，会先由其他 {siteNameShort} 端口处理。当另一个端口在工作流中连接到 AS2 端口时，文件会自动传递到 AS2 端口的发送文件夹。

在下面的工作流示例中，文件经 [X12 端口](/26.2/self-hosted/zh/connectors/x12) 处理后，会自动添加到 AS2 端口的发送文件夹：

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_4.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=e8203584c88433d3aa73ba1b5846d7bd" alt="Flow showing X12 connector connected to AS2 connector" width="800" data-path="public/images/config_as2_4.png" />

### 接收 MDN 回执

如果启用了 **请求 MDN 回执**，AS2 端口会自动等待 [MDN 回执](/26.2/self-hosted/zh/connectors/as2#mdn-receipts)。如果 MDN 回执包含负面响应（例如，伙伴由于某种原因拒绝了交换），端口将报告错误而不是发送成功。

如果请求了异步 MDN，端口将保持在 *等待 MDN* 状态，直到伙伴返回 MDN。{companyName} 建议使用同步 MDN，除非通过 AS2 交换的文件非常大（500MB 或更大）。

## 接收 AS2 消息

当 AS2 消息到达 {siteNameShort} Web 服务器时，应用程序会将消息路由到特定的 AS2 端口。{siteNameShort} 使用消息头（*AS2-To* 和 *AS2-From* 标头）中的 AS2 标识符，将传入的文件路由到为发送该消息的伙伴配置的 AS2 端口。

如果应用程序找不到为传入消息配置的 AS2 端口（基于 AS2 标识符），[应用程序日志](/26.2/self-hosted/zh/getting-started/administration/activity#application-logs) 将记录错误，且文件不会被接收。

### 输出选项卡

当通过 AS2 接收的文件被路由到特定的 AS2 端口（基于配置的 AS2 标识符）时，文件将到达该端口的 **输出** 选项卡。

如果 AS2 端口在工作流中连接到了其他端口，文件不会留在接收文件夹中，而是传递到工作流中的下一个端口。在下面的工作流示例中，通过 AS2 接收（并路由到此 AS2 端口）的文件会自动传递到 X12 端口进行进一步处理。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_as2_5.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=22683dd6e7951f61f57d19060840b4ef" alt="Flow showing AS2 connector passing files to X12 connector" width="800" data-path="public/images/config_as2_5.png" />

如果 AS2 端口未在工作流中连接到另一个端口，则 AS2 端口接收的文件将留在接收文件夹中。可以在端口的 **输出** 选项卡查看这些文件。

### 发送 MDN 回执

如果传入的 AS2 消息请求了 MDN 回执，AS2 端口会自动生成并发送 MDN。如果在接收 AS2 消息时发生错误，该错误将记录在 {siteNameShort} 中，并包含在返回给交易伙伴的 MDN 回执中。

发送 MDN 回执所需的设置已包含在传入的 AS2 消息中，不需要在 AS2 端口中显式配置。
