> ## 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.

# 配置 OFTP 连接

> 在知行之桥中与交易伙伴建立 Odette FTP (OFTP) 连接，包括配置档案和端口设置。

export const cloudEnv = false;

export const companyName = "知行软件";

export const siteNameShort = "知行之桥";

export const siteName = "知行之桥";

## 概览

{siteName} 支持通过简单的两个步骤与交易伙伴建立 Odette FTP (OFTP) 连接。首先，使用本地 OFTP 详情（标识符、私有证书等）配置 OFTP 配置档案。然后，在 [工作流](/26.2/self-hosted/zh/flows/flows) 页面上针对特定交易伙伴配置 OFTP 端口。

OFTP 协议支持消息路由和清算中心服务器，这在建立新连接时可能会引起混淆。请参阅 [SSID 和 SFID](#ssid-和-sfid)，了解消息路由、SSID、SFID 以及这些概念如何在 {siteNameShort} 中表示的更多信息。

## OFTP 配置

[配置档案页面](/26.2/self-hosted/zh/getting-started/administration/profiles) 包含一个 OFTP 区域，用于配置本地 OFTP 详情。主要配置详情包括：

* Odette 标识符（由 Odette 提供的用于识别您作为 OFTP 实体的值）
* 服务器设置（与端口和 TLS 设置相关的参数）
* 密码（与标识符关联的密码；这是您提供给交易伙伴的任意值）
* 私有证书（用于解密入站消息并对出站消息进行签名的证书）

点击导航栏上的 **配置档案** 以配置 OFTP 配置档案设置，如下所述。

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_oftp_1.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=030564dc2d143c243c0892865b1dfc4a" alt="OFTP profile configuration" width="600" data-path="public/images/config_oftp_1.png" />

### Odette 标识符

Odette 标识符由 Odette 分配，用于识别您作为 OFTP 实体的身份。它包含在出站 OFTP 消息中，并将您标识为发送方。此外，入站 OFTP 消息必须寻址到此标识符才能被应用程序接受。

<Note>OFTP 使用两个不同的值来识别消息的接收者：SSID 和 SFID。有时这些值相同，有时则不同，这可能会引起混淆。SSID 和 SFID（以及它们与 {siteNameShort} 中设置的关系）在 [SSID 和 SFID](#ssid-和-sfid) 中有详细解释。</Note>

### 密码

与标识符不同，密码是您必须与交易伙伴达成一致的任意值（换句话说，只要将该值发送给合作伙伴并且对方同意密码内容，您就可以自行设定该值）。

发送方和接收方都必须知道密码值，才能成功发送和接收 OFTP 消息。

### 服务器设置

配置档案的 **服务器设置** 区域定义了监听入站消息的 OFTP 服务器的核心参数。**端口** 指定接受入站 OFTP 连接的端口，**使用 SSL/TLS** 设置决定入站连接是否必须使用 TLS/SSL 安全加密。如果启用了 TLS，必须设置 TLS/SSL 证书和密码来识别服务器。这与下面描述的 **个人证书** 设置不同。后者用于在通过连接通道接收到 OFTP 消息 *后* 对其进行解密。

### 个人证书

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

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

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

#### 创建新证书对

如果还没有用于 OFTP 安全的私钥和公钥对，{siteNameShort} 支持创建自签名证书。自签名证书在 OFTP 领域很常见，但某些合作伙伴可能要求从受信任的证书颁发机构 (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 Data Decryption Certificate dropdown" width="600" data-path="public/images/config-as2_create_cert.png" />

以下字段是必填的：

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

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

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

## OFTP 端口配置

完成 OFTP 配置档案后，导航至 **工作流** 页面并创建一个 OFTP 端口实例。

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

通常，每个 OFTP 端口都配置有单个交易伙伴的 OFTP 详情。然而，有时合作伙伴可能需要两个 OFTP 端口。关于何时需要两个端口以及两者之间配置差异的详细信息，请参阅 [SSID 和 SFID](#ssid-和-sfid)。

### 必填配置设置

OFTP 配置详情必须由交易伙伴提供。至少，交易伙伴必须提供的详情包括：

* Odette 标识符
* 密码
* 发送出站 OFTP 消息的主机名或 IP 地址
* 远程主机监听的端口
* 用于加密的公钥证书或密钥

在 OFTP 端口 [设置选项卡](/26.2/self-hosted/zh/connectors/oftp#settings-tab) 的 **主机配置** 和 **交易伙伴证书** 区域配置这些值：

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_oftp_3.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=a2b1f8b672d826cb9c858bfb034cdc99" alt="Host Configuration settings for OFTP connector" width="600" data-path="public/images/config_oftp_3.png" />

<img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/config_oftp_4.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=038a7d7459ebc7ad80f1d1a195582493" alt="Trading Partner Certificates for OFTP connector" width="595" data-path="public/images/config_oftp_4.png" />

### 额外配置设置

合作伙伴可能有其他要求，包括：

* SSL/TLS 和额外的 **TLS 服务器证书**：SSL/TLS 在 **设置** 选项卡配置，额外的证书在 **高级** 选项卡配置。如果没有明确说明，请假设其 *不是* 必须的。
* 安全 Odette 认证：在 **设置** 选项卡配置。如果没有明确说明，请假设其 *是* 必须的。
* 虚拟文件格式：在 **设置** 选项卡配置。如果没有明确说明，请假设文件格式为非结构化。

#### 日志

启用服务器端日志对于调试 OFTP 连接问题非常有帮助。调试时，{companyName} 建议将端口 [高级选项卡](/26.2/self-hosted/zh/connectors/oftp#advanced-tab) 上的 **日志级别** 设置为 *Debug*。日志可以根据选择的间隔配置为轮转（换句话说，压缩并移动到归档位置）或删除。

<Note>在没有主动调试时，请将 **日志级别** 保持为 *Info*。</Note>

### 测试 OFTP 连接

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

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

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

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

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

至少必须向合作伙伴提供：

<ul>
  <li>您的 Odette 标识符</li>
  <li>您的密码</li>
  <li>您的公钥或加密证书</li>

  <li>您的接收主机名或 IP 地址和端口（<a href="#服务器设置">服务器设置</a> 配置档案选项卡上的 <strong>主机名</strong> 和 <strong>端口</strong> 值）</li>
</ul>

## 发送 OFTP 消息

一旦 OFTP 端口成功建立出站 OFTP 连接，文件就可以安全可靠地发送给交易伙伴。

### 交易选项卡

放置在 OFTP 端口 **交易** 选项卡中的文件将由端口排程发送。

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

还可以使用 **交易** 选项卡将文件上传到发送文件夹中。

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

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

### 接收回执

如果在 **设置** 选项卡启用了 **请求签名回执**，端口会自动等待 OFTP 回执。如果回执包含负面响应（例如，合作伙伴由于某种原因拒绝了交换），端口将报告错误而不是发送成功。

## 接收 OFTP 消息

当 OFTP 消息到达 {siteNameShort} OFTP 服务器时，应用程序会尝试将消息路由到特定的 OFTP 端口。{siteNameShort} 使用消息头中的 Odette 标识符将入站文件路由到为发送消息的合作伙伴配置的 OFTP 端口。

如果应用程序无法根据 OFTP 标识符找到为入站消息配置的 OFTP 端口，则会在 [应用程序日志](/26.2/self-hosted/zh/getting-started/administration/activity#application-logs) 中记录错误，且文件不会被接收。

### {cloudEnv ? "Output" : "Transactions"} 选项卡

当通过 OFTP 接收的文件被路由到特定的 OFTP 端口（基于配置的 Odette 标识符）时，文件将到达该端口的 **{cloudEnv ? "Output" : "Transactions"}** 选项卡。

如果 OFTP 端口连接到工作流中的其他端口，文件不会留在接收文件夹中，而是被传递到工作流中的下一个端口。

如果 OFTP 端口未连接到工作流中的另一个端口，则由 OFTP 端口接收的文件将保留在接收文件夹中。这些文件可以在端口的 **{cloudEnv ? "Output" : "Transactions"}** 选项卡查看。

### 发送回执

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

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

## SSID 和 SFID

本节提供 SSID 和 SFID 值、消息路由以及如何使用 {siteNameShort} 设置来定义和控制连接行为的概念性概述。对 OFTP 中消息路由的概念性理解有助于理清 SSID 和 SFID 值在建立连接和传输文件中的作用。

### 消息路由

当 OFTP 客户端向 OFTP 服务器发送文件时，客户端可以请求 OFTP 服务器将文件转发给另一个 OFTP 实体或服务器。这种将文件发送到 `serverA` 并期望其路由到 `serverB` 的过程就是所谓的 *消息路由*。

消息路由的一个常见用例是让单个服务器充当多个 OFTP 端点的网关或清算中心。例如，假设一家公司有三个分部，每个分部都需要接收独特的 OFTP 消息。单个 OFTP 服务器可以充当整个公司的清算中心，接收来自外部的 OFTP 消息并将其路由到适当的内部 OFTP 端点（每个分部都有专门的 OFTP 服务器）。

然而，OFTP 连接并不 *需要* 使用消息路由；可以在端点之间建立直接连接，并在没有任何中间步骤的情况下传递消息。

### SSID

当 OFTP 客户端连接到 OFTP 服务器时，它通过向服务器发送其 Odette 标识符和相关密码来告知服务器其身份。如果服务器识别出此 Id 并应允许连接，则服务器发回其自身的 Odette 标识符和密码。只有当双方都（通过 Id）识别出对方时，连接才会成功。

这些 Id 值是使用 SSID 命令交换的，SSID 代表 <b>S</b>tart <b>S</b>ession <b>ID</b>。可以将 SSID 值视为建立 OFTP 会话（连接）时用于确认远程方身份的 Id。

### SFID

SFID 代表 <b>S</b>tart <b>F</b>ile <b>ID</b>，也是一个 Odette 标识符值，但它的使用方式与 SSID 不同。虽然 SSID 用于启动与 OFTP 服务器的会话（连接），但 SFID 用于识别文件的最终接收者。当客户端通过 OFTP 发送文件时，它包含一个 SFID 值，让远程方知道文件是否应该路由到另一个 OFTP 实体。

这意味着，如果文件旨在保留在目标服务器上，则 SFID 值可以与服务器的 SSID 相同。如果客户端连接到清算中心或网关 OFTP 服务器，并且该服务器需要将文件路由到最终接收者，则 SFID 也可以不同。

### 在 {siteName} 中使用 SSID 和 SFID 值

在 {siteNameShort} 中配置正确的 SSID 和 SFID 值取决于您的 OFTP 交易伙伴是否需要消息路由。当交易伙伴为 SSID 和 SFID 提供两个不同的标识符值时，这表明合作伙伴需要消息路由。

#### 路由消息时的配置

如果合作伙伴需要消息路由，需要配置两个独立的 OFTP 端口。一个端口（称之为 `connectorA`）配置有清算中心服务器（中间服务器）的连接详情，而另一个端口（`connectorB`）配置有最终接收者服务器的连接详情。

`connectorA` 中的 **Odette 标识符** 字段填入合作伙伴的 *SSID* 值，即用于识别清算中心服务器的值。`connectorB` 中的 **Odette 标识符** 字段填入合作伙伴的 *SFID* 值，即用于识别最终接收者服务器的值。此外，`connectorB` 必须将 **设置** 选项卡上的 **路由伙伴** 字段设置为 `connectorA`。

完成此设置后，发送给合作伙伴的文件将被上传或输入到 `connectorB`。该端口使用 `connectorA` 连接到清算中心服务器（由于设置了 **路由伙伴**），并使用 `connectorB` 中 **Odette 标识符** 字段的 SFID 值将文件路由到正确的目标目的地。

#### 直接传输文件时的配置

如果合作伙伴不需要消息路由，他们应该提供单个 SSID 或 SFID 值来识别其 OFTP 服务器。您只需要配置一个 OFTP 端口（与涉及消息路由时所需的两个端口相反），并且端口中的 **Odette 标识符** 字段应设置为合作伙伴提供的 SSID 或 SFID 值。
