

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

# 为 E AWS IoT SiteWise dge 配置代理支持并管理信任存储
<a name="edge-apis-manage-trust-stores-proxy"></a>

在 AWS IoT SiteWise Edge 中，配置和管理信任存储库，为边缘设备设置代理支持。首先，设置代理配置，然后配置信任存储。您可以在网关安装期间配置信任存储，也可以在网关建立后手动配置信任存储。
+ **代理**-在各种网络环境中促进边缘设备和 AWS 服务之间的连接。
+ **信任存储**-通过管理可信证书来确保连接安全。适当的配置可帮助您遵守网络安全策略，在受限的网络环境中实现通信，并优化边缘设备和云服务之间的数据传输。

SiteWise Edge 针对不同的组件类型使用多个信任存储，确保数据从边缘设备安全高效地流向云端。您可以在现有网关上配置信任存储和代理，也可以在安装过程中创建新网关时配置信任存储和代理。

## 信任存储和代理配置的要求
<a name="manage-trust-stores-proxy_implementation-requirements"></a>

在配置信任存储或使用代理设置安装 SiteWise Edge 之前，请确保满足先决条件。根据您的组件使用情况和功能要求，有不同的实现要求。

**代理支持要求**
+ 您的代理服务器的 URL。URL 应包含用户信息，即主机的端口号。例如 `scheme://[userinfo@]host[:port]`。
  + `scheme`— 必须是 HTTP 或 HTTPS
  + （可选）`userinfo`-用户名和密码信息
  + `host`— 代理服务器的主机名或 IP 地址
  + `port`— 端口号
+ 绕过代理的地址列表。
+ （可选）如果您使用带有自签名证书的 HTTPS 代理，则为代理 CA 证书文件。

**信托商店要求**
+ 要使用 HTTPS 代理获得完整的数据处理包功能，您应该更新所有三个信任存储库。
+ 如果您仅使用 IoT SiteWise OPC UA 收集器和物联网 SiteWise 发布器，请将证书 C AWS IoT Greengrass ore 和 Java 信任存储更新到最新版本。

## 信任存储和代理服务器边缘配置的最佳实践
<a name="manage-trust-stores-proxy_best-practices"></a>

要进行持续维护并保持边缘环境的最高安全级别，请执行以下操作：
+ 定期检查和更新代理设置，使其符合您的网络安全要求。
+ 监控网关连接和数据流，确保代理通信正确
+ 根据贵组织的证书管理政策维护和更新信任存储
+ 您可以实施并遵循我们推荐的最佳实践，以便在边缘环境中实现安全通信，例如：
+ 记录您的代理和信任存储库配置，以实现运营可见性
+ 按照贵组织的安全惯例进行凭证管理

这些做法有助于保持 SiteWise Edge 网关的安全可靠运行，同时与更广泛的安全策略保持一致。

# 在 AWS IoT SiteWise Edge 网关安装期间配置代理设置
<a name="manage-trust-stores-proxy_config"></a>

您可以将 AWS IoT SiteWise Edge 配置为在网关安装期间使用代理服务器。安装脚本同时支持 HTTP 和 HTTPS 代理，并且可以自动配置信任存储以实现安全的代理连接。

使用代理设置运行安装脚本时，它会执行几项重要任务：
+ 验证代理 URL 格式和参数，确保它们指定正确。
+ 通过配置的代理下载并安装所需的依赖项。
+ 如果提供了代理 CA 证书，则会将其附加到 AWS IoT Greengrass 根 CA 证书并导入到 Java KeyStore 中。
+ 将 AWS IoT Greengrass （ SiteWise Edge 使用的）配置为对所有出站连接使用代理。
+ 使用适当的代理和信任存储配置完成 SiteWise Edge 安装。

**在安装网关软件时配置代理设置**

1. 创建 SiteWise Edge 网关。有关更多信息，请参阅[创建自托管 SiteWise Edge 网关](create-gateway-ggv2.md)和[在本地设备上安装 AWS IoT SiteWise Edge 网关软件](install-gateway-software-on-local-device.md)。

1. 使用适合您环境的代理设置运行安装脚本。用您的特定代理信息替换占位符 

   替换以下各项：
   + `-p`，`--proxy-url`— 代理服务器的 URL。网址必须为`http`或`https`。
   + `-n`，`--no-proxy`— 以逗号分隔的地址列表，用于绕过代理。
   + （可选）`-c`，`--proxy-ca-cert`— 代理 CA 证书文件的路径。
   + （可选）`-j`，`--javastorepass`— Java KeyStore 密码。默认密码为 `changeit`。

------
#### [ Linux ]

   对于 Linux 系统，请使用以下命令结构：

   ```
   sudo ./install.sh -p proxy-url -n no-proxy-addresses [-c proxy-ca-cert-path] [-j javastorepass]
   ```

------
#### [ Windows ]

   对于使用的Microsoft Windows系统 PowerShell，请使用以下命令结构：

   ```
   .\install.ps1 -ProxyUrl proxy-url -NoProxyAddresses no-proxy-addresses [-ProxyCaCertPath proxy-ca-cert-path] [-JavaStorePass javastorepass]
   ```

------

## 在启用代理的安装过程中进行故障排除
<a name="manage-trust-stores-proxy_installation-process_troubleshooting"></a>

有关解决与 SiteWise Edge 网关相关的信任存储问题的更多信息，请参阅[支持代理的安装问题](troubleshooting-gateway.md#troubleshoot-proxy-during-installation)。

# 在 E AWS IoT SiteWise dge 中手动配置信任存储以支持 HTTPS 代理
<a name="manage-trust-stores-proxy_trust-store-locations-and-configuration"></a>

将 AWS IoT SiteWise Edge 组件配置为通过 HTTPS 代理进行连接时，请将代理服务器的证书添加到相应的信任存储中。 SiteWise Edge 使用多个信任存储库来保护通信。有三个信任存储库，您对它们的使用取决于网关实现中的 SiteWise Edge 组件类型。

如果提供了代理设置，则会在安装过程中自动更新信任存储库。
+ [配置 AWS IoT Greengrass 核心组件信任存储](#manage-trust-stores-proxy_greengrass-core-components)— AWS IoT Greengrass 根CA证书包含在信任库中，用于验证 AWS 服务的真实性。

  此信任存储可帮助 AWS IoT Greengrass 组件通过代理安全地与 AWS 服务通信，同时验证这些服务的真实性。
+ [配置基于 Java 的组件信任存储](#manage-trust-stores-proxy_java-based-components)— Java KeyStore (JKS) 是基于 Java 的组件用于 SSL/TLS 连接的主要信任存储库。

   Java 应用程序依靠 JKS 来建立安全连接。例如，如果您使用的是基于 Java 的 IoT SiteWise 发布者或 IoT SiteWise OPC UA 收集器，则需要配置此信任存储库。这样可以确保在向云端发送数据或从 OPC UA 服务器收集数据时，这些组件可以安全地通过 HTTPS 代理进行通信。
+ [系统级组件信任存储配置](#manage-trust-stores-proxy_system-level-components)— 使用 HTTPS 代理时，必须将其证书添加到相应的信任存储库中以启用安全连接。

  使用 HTTPS 代理时，必须将其证书添加到相应的信任存储中，以启用安全连接。这是必要的，因为通常用 Rust 或 Go 等语言编写的系统级组件依赖于系统的信任存储库，而不是 Java 的 JKS。例如，如果您使用的系统实用程序需要通过代理进行通信（例如软件更新或时间同步），则需要配置系统级信任存储。这可确保这些组件和实用程序能够通过代理建立安全连接。

## 配置 AWS IoT Greengrass 核心组件信任存储
<a name="manage-trust-stores-proxy_greengrass-core-components"></a>

对于使用亚马逊根 CA 的 AWS IoT Greengrass 核心函数：

1. 在以下位置找到证书文件 `/greengrass/v2/AmazonRootCA1.pem`

1. 将 HTTPS 代理根证书（自签名）附加到此文件中。

```
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK
\nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... content of proxy CA certificate ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui
GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216
gJMIADggEPADf2/m45hzEXAMPLE=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg
ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW
... content of root CA certificate ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa
5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy
rqXRfKoQnoZsG4q5WTP46EXAMPLE
-----END CERTIFICATE-----
```

### 在已建立的网关上配置 HTTPS 代理
<a name="manage-trust-stores-proxy_proxy-configuration"></a>

您可以通过连接到端口 443 而不是端口 8883 来为已建立的网关添加代理支持。有关使用代理服务器的更多信息，请参阅《*AWS IoT Greengrass Version 2 开发人员指南*[》中的通过端口 443 或通过网络代理进行连接](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-alpn-network-proxy)。如果您创建了新的网关，则可以在网关安装期间设置代理配置。有关更多信息，请参阅 [在 AWS IoT SiteWise Edge 网关安装期间配置代理设置](manage-trust-stores-proxy_config.md)。

当你 AWS IoT Greengrass 在 SiteWise Edge 上使用 HTTPS 代理时，软件会根据提供的网址自动在 HTTP 和 HTTPS 之间进行代理连接。

**重要**  
在尝试通过 HTTPS 代理进行连接之前，请更新所有必需的信任存储库。

## 配置基于 Java 的组件信任存储
<a name="manage-trust-stores-proxy_java-based-components"></a>

对于数据处理包中的物联网 SiteWise 发行商、物联网 SiteWise OPC UA 收集器和 Java 服务，默认 Java 信任存储位置为 `$JAVA_HOME/jre/lib/security/cacerts`

**添加证书**

1. 创建用于存储代理服务器证书的文件，例如`proxy.crt`。
**注意**  
使用代理服务器的证书提前创建文件。

1. 使用以下命令将文件添加到 Java 的信任存储区：

   ```
   sudo keytool -import -alias proxyCert -keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -file proxy.crt
   ```

1. 出现提示时，使用默认密码：`changeit`

## 系统级组件信任存储配置
<a name="manage-trust-stores-proxy_system-level-components"></a>

对于用 Rust、Go 和其他使用系统信任存储库的语言编写的组件：

------
#### [ Linux ]

Linux 系统：将证书添加到 `/etc/ssl/certs/ca-certificates.crt`

------
#### [ Windows ]

Microsoft Windows系统：要配置信任存储库，请按照 *Microsoft Ignite* 文档中的[证书存储](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/certificate-stores)区步骤进行操作。

Windows 提供多个证书存储区，包括用于用户和计算机范围的单独存储区，每个存储区都有多个子存储区。对于大多数 SiteWise Edge 设置，我们建议在`COMPUTER | Trusted Root Certification Authorities`商店中添加证书。但是，根据您的特定配置和安全要求，您可能需要使用不同的商店。

------

## 对信任存储库问题进行故障排除
<a name="manage-trust-stores-proxy_trust-stores-troubleshooting"></a>

有关解决与 SiteWise Edge 网关相关的信任存储问题的更多信息，请参阅[信任商店问题](troubleshooting-gateway.md#troubleshoot-trust-stores)。