# TLS 密码组

密码组是一组算法，用于将网络通信加密。Qlik NPrinting 组件支持各种密码组，以允许不同的安全协议。

Qlik NPrinting 不会将特定安全密码组设置为强制性，以确保与不同操作系统和平台的兼容性。

## Qlik NPrinting 代理密码组

代理配置参数 `tls.ciphersuites`可让您在 Qlik NPrinting 代理中管理自定义的密码组集合。

代理配置文件为：

* %ProgramData%\NPrinting\webconsoleproxy\app.conf
* %ProgramData%\NPrinting\newsstandproxy\app.conf

这些文件包含可自定义的配置属性列表，默认都是注释掉的。如果您升级至新版本的 Qlik NPrinting，这些文件不会更改。因此，该配置属性并非在您从旧版本升级之后立即可见。这确保您不会丢失自己的设置。

### 限制

* Qlik NPrinting 代理支持有限的密码组集合。列表可能在产品升级之后更改以包括新的算法或否决其他算法。

* 一些受支持的密码组被 HTTP/2 协议视为 TLS 1.2 不安全。必须将它们置于任何未列入黑名单密码之后的自定义值列表中。否则，代理会无法启动，您将看到以下错误：

  "`http2: TLSConfig.CipherSuites` 索引 `%index%` 包含 HTTP/2-批准的密码套件 (`%ciphername%`)，但它位于未经批准的密码套件之后。对于该配置，可能向不支持之前批准的密码组的客户端提供未批准的密码组并拒绝连接。

* 注意 `%index%` 和 `%ciphername%` 为变量，其将示出：

  * `%index%`：索引的名称。
  * `%ciphername%`：导致问题的密码组的名称。

* 这些密码组是必需的：

  * `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`（需要 HTTP/2 RFC）

  * `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`（支持纯 `ECDSA` 服务器）

  如果将它们删除，代理会无法启动，您将看到以下错误：“http2: TLSConfig.CipherSuites 缺少 HTTP/2 所需的 AES\_128\_GCM\_SHA256 密码”

### 支持的密码组

```
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
// RC4-based cipher suites are disabled by default
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
// black-listed by default
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
```

### 访问自定义密码组列表

进行以下操作：

1. 停止 QlikNPrintingWebEngine 服务。
2. 要自定义 Qlik NPrinting web 控制台，打开 webconsoleproxy\app.conf。要自定义 NewsStand，打开 newsstandproxy\app.conf。
3. 取消注释或添加 `tls.ciphersuites`。
4. 输入逗号分隔的密码组列表以作为从最首选到最不首选的值支持。
5. 保存文件。
6. 重新启动 QlikNPrintingWebEngine 服务。

#### 示例

仅设置由 RFC 7540 标准视为安全的密码组。

```
# set a custom set of supported cipher suites ordered from most to least preferred
tls.ciphersuites = "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
```

## Qlik NPrinting 消息服务 密码组

这些是 Qlik NPrinting 消息服务 对 Qlik NPrinting 排程器服务 和 Qlik NPrinting Engine 之间的 TLS 通信支持的密码组。它们受 RabbitMQ 和 TLS 1.2 支持。

如果您希望对客户端证书验证禁用 TLS 连接，并使用简单的验证，请参见：[为简单验证配置消息服务](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/DeployingQVNprinting/Configuring-RabbitMQ-for-plain-authentication.htm)。

### 限制

* 由于用于连接 Qlik NPrinting 消息服务 的证书的限制，只能使用一些 TLS 1.2 密码套件。

* 基于密码块链接 (CBC) 模式的密码套件，即使产品支持，也不会被视为安全。如果操作系统支持，建议您使用依赖 Galois/计数器模式 (GCM) 的密码套件。

* 虽然在自定义 RabbitMQ 配置文件时可以限制 Qlik NPrinting 消息服务接受的密码套件，但这种方法可能会导致错误。相反，建议您使用 IIS Crypto 或类似产品在 Microsoft Windows 操作系统级别禁用弱密码套件。请确保至少启用以下密码套件中的一个（以及其他所需的密码套件）。有关更多信息，请参阅[如何使用 IIS Crypto GUI 在 Microsoft Windows 操作系统计算机上启用或禁用密码套件](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/DeployingQVNprinting/TLS-cipher-suites.htm#How)。

### 支持的密码组

```

TLS_ECDHE_RSA_AES128_GCM_SHA256
TLS_ECDHE_RSA_AES256_GCM_SHA384
```

## 授权服务密码组

许可证服务配置参数 cipher-suites可让您在许可服务中管理自定义的密码组集合。

### 限制

* 升级到 Qlik NPrinting 的新版本时，将重置授权服务配置文件。因此，升级后必须再次更改 cipher-suites 参数。

* 授权服务支持有限的密码组集合。列表可能在产品升级之后更改以包括新的算法或否决其他算法。

* 这些密码组是必需的：

  * TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256（需要 HTTP/2 RFC）

  * TLS\_ECDHE\_ECDSA\_WITH\_AES\_128\_GCM\_SHA256（支持纯 ECDSA 服务器）

### 支持的密码组

```
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA25
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
```

### 访问自定义密码组列表

进行以下操作：

1. 停止服务 QlikNPrintingScheduler、QlikNPrintingWebEngine 和 QlikNPrintingLicenseService。

2. 打开配置文件 %ProgramFiles%\NPrintingServer\NPrinting\License\license.config。

3. 取消注释或添加密码组参数。

4. 输入逗号分隔的密码组列表以作为从最首选到最不首选的值支持。

5. 保存文件。

6. 重启服务。

#### 示例

仅设置由 RFC 7540 标准视为安全的密码组。

```
<!--Add a custom comma-separated list of cipher suites as shown below-->
<add key="cipher-suites" value="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" />
```

## Qlik NPrinting Server 和引擎密码套件连接到 Qlik Sense 服务器

这些是由 Qlik NPrinting Server 和 Qlik NPrinting Engine 服务支持的密码套件，用于 Qlik NPrinting 和 Qlik Sense 之间的 TLS 通信。必须在以下所有设备上至少启用其中一个：

* Qlik NPrinting Server 计算机

* Qlik NPrinting Engine 计算机

* 连接到 Qlik NPrinting 的 Qlik Sense 计算机（包括所有 Sense 节点）

请注意，Qlik NPrinting 使用这些密码套件将报表发布到 Qlik Sense 服务器。有关更多信息，请参阅[将报表分发至 Qlik Sense 应用中心](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/AdministeringQVNprinting/Hub-destination.htm) （仅提供英文版本）

### 支持的密码组

```

TLS_ECDHE_RSA_AES128_GCM_SHA256
TLS_ECDHE_RSA_AES256_GCM_SHA384
```

## 如何使用 IIS Crypto GUI 在 Microsoft Windows 操作系统计算机上启用或禁用密码套件

进行以下操作：

1. 从 [Nartac 软件下载](https://www.nartac.com/Products/IISCrypto/Download) （仅提供英文版本）进行 IIS Crypto 3.3 或更高版本的下载。

2. 以管理员权限执行它，然后转到左侧侧边栏的“密码套件”。

3. 为所有 Qlik NPrinting 组件启用上面列出的请求密码套件。如果不存在，您可以使用相应的按钮添加它们。

   只有当您的操作系统支持这些密码套件时，此步骤才会起作用。

4. 单击应用。

5. 重新启动计算机。