

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

# 配置 EMQX 代理
<a name="configure-emqx-broker"></a>

本节介绍如何添加用户名和密码。它还介绍了如何使用添加的用户名和密码从外部来源建立 TLS 连接。您可以使用 Linux 来配置 EMQX 代理，也可以使用。Microsoft Windows

**注意**  
要配置代理，您需要在支持 MQTT 的 V3 网关中使用默认 EMQX 配置设置的核心设备。

**重要**  
完成此过程后，我们强烈建议您配置授权规则。有关更多信息，请参阅 [在 EMQX 中为 AWS IoT SiteWise Edge 设置授权规则](authorization-rules-emqx-broker.md)。针对已添加用户的授权规则可增强安全性。

## 更新 EMQX 部署配置以进行身份验证
<a name="update-emqx-broker-authentication"></a>

**更新 EMQX 部署配置以进行身份验证**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左侧导航栏中，选择 **Edge 部分的 **Edge** 网关**。

1. 选择要配置的网关。

1. 在 **Edge 网关配置**部分，复制您的 **Greengrass 核心设备值**。将其保存以备后用。

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot/)。

1. **在左侧导航栏的 “**管理**” 部分下，选择 **Greengrass** 设备，然后选择 “部署”。**

1. 找到您之前保存的核心设备值，然后选择该链接以打开部署。

1. 选择 “**操作**” 下拉按钮，然后选择 “**修改**”。

1. 阅读显示的消息，然后选择**修订部署**。将出现 **“指定目标**” 页面。

1. 选择 “**下一步**”，直到进入 “**配置组件**” 步骤。

1. 选择 `aws.greengrass.clientdevices.mqtt.EMQX` 单选按钮。

1. 选择 “**配置组件**” 按钮。此时将显示该组件的配置页面。

1. 在 “**配置更新**” 下，选择 “**重置为组件版本的默认配置：2.\$1”。 **\$1。

1. 根据您的操作系统，在 “**要合并的配置**” 部分中输入以下配置。

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

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

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

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

   该`dockerOptions`字段仅适用于 Linux 网关。

------

1. 选择**确认**。

1. 选择 “**下一**步”，直到进入 “**查看**” 步骤。

1. 选择**部署**。

1. 部署成功后，继续下一步。

## 启用用户名和密码认证
<a name="emqx-broker-username-password-auth"></a>

本节介绍如何通过 EMQX 控制面板 GUI 添加用户名和密码。

**注意**  
所提供的 EMQX 相关说明仅供参考。由于 EMQX 的文档和功能可能会随着时间的推移而发生变化，并且我们不保留其文档，因此我们建议您查阅 [EMQX 的官方文档](https://docs.emqx.com/en/emqx/latest/)以获取最新信息。

------
#### [ EMQX Dashboard ]

**通过 EMQX 控制面板启用用户名和密码身份验证**

1. 确保您在网关主机内。

1. 打开浏览器窗口并访问[http://localhost:18083/](http://localhost:18083/)。

1. 输入的默认用户名**admin**和默认的密码**public**。*有关更多信息，请参阅 [EMQX 文档中的 EMQX 控制面板](https://docs.emqx.com/en/emqx/latest/dashboard/introduction.html#first-login)。*

1. 登录后，系统会提示您更改密码。更新您的密码以继续进入 EMQX 控制面板。

1. 在左侧导航栏中，选择盾牌图标，然后选择**身份验证**。

1. 在 “**内置数据库**” 行中，选择 “**用户**” 按钮。

1. 选择加号图标按钮以添加用户。**将出现 “添加**” 屏幕。

1. 输入外部应用程序用户的用户名和密码。

1. 选择**保存**。您选择的用户名将显示在 “**身份验证**” 页面的表格中。

**注意**  
现有或默认的授权规则适用于新用户。建议根据您的外部应用程序需求对其进行审查和调整。

------
#### [ EMQX Management with Linux ]

使用 AWS IoT SiteWise EMQX CLI 工具，网址为。`/greengrass/v2/bin/swe-emqx-cli`

**使用 Linux 通过 EMQX 管理启用用户名和密码认证**

1. 通过运行以下命令更改管理员密码：

   ```
   /greengrass/v2/bin/swe-emqx-cli admin change-pwd
   ```

1. 出现提示时，请执行以下操作：

   1. 输入您当前的管理员用户（默认为`admin`）和密码（默认为`public`）。

   1. 输入并确认您的新密码。

   如果成功，您将看到以下消息：

   ```
   admin password changed successfully
   ```

1. 通过运行以下命令为外部应用程序添加用户：

   ```
   /greengrass/v2/bin/swe-emqx-cli users add
   ```

1. 出现提示时，请执行以下操作：

   1. 输入新用户的用户名。

   1. 输入并确认新用户的密码。

   如果成功，您将看到以下消息：

   ```
   User '[username]' created successfully
   ```

1. 通过运行以下命令来验证用户配置：

   ```
   /greengrass/v2/bin/swe-emqx-cli users list
   ```

   输出显示所有已配置的用户：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------
#### [ EMQX Management with Windows ]

在以下位置之一使用 AWS IoT SiteWise EMQX CLI 工具：
+ PowerShell: `C:\greengrass\v2\bin\swe-emqx-cli.ps1`
+ 命令提示符：`C:\greengrass\v2\bin\swe-emqx-cli.bat`

**使用 Windows 通过 EMQX 管理功能启用用户名和密码身份验证**

1. 通过运行以下命令更改管理员密码：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 admin change-pwd
   ```

1. 出现提示时，请执行以下操作：

   1. 输入您当前的管理员用户（默认为`admin`）和密码（默认为`public`）。

   1. 输入并确认您的新密码。

   如果成功，您将看到以下消息：

   ```
   admin password changed successfully
   ```

1. 通过运行以下命令为外部应用程序添加用户：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users add
   ```

1. 出现提示时，请执行以下操作：

   1. 输入新用户的用户名。

   1. 输入并确认新用户的密码。

   如果成功，您将看到以下消息：

   ```
   User '[username]' created successfully
   ```

1. 通过运行以下命令来验证用户配置：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users list
   ```

   输出显示所有已配置的用户：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------