设置密码套件

密码套件是算法和协议的组合,有助于在 TLS 握手过程中确保网络连接的安全。IBM Cloud® Internet Services 通过使用边缘密码套件和起源密码套件来确保网络连接的安全。

边缘密码套件

以下密码在云端受支持。 您可以通过 CIS CLI 插件将用于域的密码限制为 IBM Cloud CLI。 请参阅 域设置命令 上的 ciphers 选项。

边缘密码套件
OpenSSL 名称 TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3 IANA 名称
ECDHE-ECDSA-AES128-GCM-SHA256 可用 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
ECDHE-ECDSA-CHACHA20-POLY1305 可用 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
ECDHE-RSA-AES128-GCM-SHA256 可用 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
ECDHE-RSA-CHACHA20-POLY1305 可用 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
ECDHE-ECDSA-AES128-SHA256 可用 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
ECDHE-ECDSA-AES128-SHA 可用 可用 可用 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
ECDHE-RSA-AES128-SHA256 可用 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
ECDHE-RSA-AES128-SHA 可用 可用 可用 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
AES128-GCM-SHA256 可用 TLS_RSA_WITH_AES_128_GCM_SHA256
AES128-SHA256 可用 TLS_RSA_WITH_AES_128_CBC_SHA256
AES128-SHA 可用 可用 可用 TLS_RSA_WITH_AES_128_CBC_SHA
ECDHE-ECDSA-AES256-GCM-SHA384 可用 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
ECDHE-ECDSA-AES256-SHA384 可用 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
ECDHE-RSA-AES256-GCM-SHA384 可用 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ECDHE-RSA-AES256-SHA384 可用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
ECDHE-RSA-AES256-SHA 可用 可用 可用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
AES256-GCM-SHA384 可用 TLS_RSA_WITH_AES_256_GCM_SHA384
AES256-SHA256 可用 TLS_RSA_WITH_AES_256_CBC_SHA256
AES256-SHA 可用 可用 可用 TLS_RSA_WITH_AES_256_CBC_SHA
DES-CBC3-SHA 可用 TLS_RSA_WITH_3DES_EDE_CBC_SHA
AEAD-AES128-GCM-SHA256 可用 TLS_AES_128_GCM_SHA256
AEAD-AES256-GCM-SHA384 可用 TLS_AES_256_GCM_SHA384
AEAD-CHACHA20-POLY1305-SHA256 可用 TLS_CHACHA20_POLY1305_SHA256

源密码套件

在源上支持以下密码。 您可以通过 CIS CLI 插件将用于域的密码限制为 IBM Cloud CLI。 请参阅 域设置命令 上的 ciphers 选项。

起源密码套件
OpenSSL 名称 TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3 IANA 名称
AEAD-AES128-GCM-SHA256 [1] 可用 TLS_AES_128_GCM_SHA256
AEAD-AES256-GCM-SHA384 [2] 可用 TLS_AES_256_GCM_SHA384
AEAD-CHACHA20-POLY1305-SHA256 [3] 可用 TLS_CHACHA20_POLY1305_SHA256
ECDHE-ECDSA-AES128-GCM-SHA256 可用 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
ECDHE-RSA-AES128-GCM-SHA256 可用 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
ECDHE-RSA-AES128-SHA 可用 可用 可用 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
AES128-GCM-SHA256 可用 TLS_RSA_WITH_AES_128_GCM_SHA256
AES128-SHA 可用 可用 可用 TLS_RSA_WITH_AES_128_CBC_SHA
ECDHE-ECDSA-AES256-GCM-SHA384 可用 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
ECDHE-RSA-AES256-SHA384 可用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
AES256-SHA 可用 可用 可用 TLS_RSA_WITH_AES_256_CBC_SHA
DES-CBC3-SHA 可用 TLS_RSA_WITH_3DES_EDE_CBC_SHA

从 CLI 管理密码套件

您可以通过 CLI 管理密码套件。

从 CLI 获取密码套件

要列出 cipher 变量,请运行以下命令:

ibmcloud cis domain-settings DNS_DOMAIN_ID [-g, --group GROUP | -f, --feature FEATURE] [-i, --instance INSTANCE] [--output FORMAT]

命令选项

DNS_DOMAIN_ID
DNS 域的 ID。 此选项是必需的。
-f, --feature
指定要检查的域设置功能。 该选项与 -g, --group 相互排斥。 将该选项设置为以下变量
  • ciphers:使用 BoringSSL 密码格式,定义用于边缘 TLS 终止的 TLS 密码套件允许列表。 该命令只列出客户明确允许列出的密码套件。 如果未列出任何密码套件,命令将返回空列表并使用默认密码套件。 有关默认密码套件的列表,请参阅 边缘密码套件
示例

获取 31984fea73a15b45779fa0df4ef62f9b 域名的 ciphers 设置。

ibmcloud cis domain-settings 31984fea73a15b45779fa0df4ef62f9b --feature "ciphers" --instance "cis-demo"

有关详细信息,请参阅 ibmcloud cis domain-settings

通过 CLI 更新密码套件

要更新 cipher 变量,请运行以下命令:

ibmcloud cis domain-settings-update DNS_DOMAIN_ID (-f, --feature FEATURE) (-v, --value VALUE) [-i, --instance INSTANCE] [--output FORMAT]

命令选项

DNS_DOMAIN_ID

DNS 域的 ID。 此选项是必需的。

-f, --feature

要更新的域设置功能。 此选项是必需的。 cipher 的有效值为:

  • ciphers:用于 TLS 终止的密码允许列表。 这些密码必须采用 BoringSSL 格式。
-v, --value

指定要为域上的功能设置的值。 此选项是必需的。

  • tls_client_auth 的有效值是 onoff
  • 密码的有效值为
    • ECDHE-ECDSA-AES128-GCM-SHA256
    • ECDHE-ECDSA-CHACHA20-POLY1305
    • ECDHE-RSA-AES128-GCM-SHA256
    • ECDHE-RSA-CHACHA20-POLY1305
    • ECDHE-ECDSA-AES128-SHA256
    • ECDHE-ECDSA-AES128-SHA
    • ECDHE-RSA-AES128-SHA256
    • ECDHE-RSA-AES128-SHA
    • AES128-GCM-SHA256
    • AES128-SHA256
    • AES128-SHA
    • ECDHE-ECDSA-AES256-GCM-SHA384
    • ECDHE-ECDSA-AES256-SHA384
    • ECDHE-RSA-AES256-GCM-SHA384
    • ECDHE-RSA-AES256-SHA384
    • ECDHE-RSA-AES256-SHA
    • AES256-GCM-SHA384
    • AES256-SHA256
    • AES256-SHA
    • DES-CBC3-SHA
    • default

例如,使用 -v default 可将特定配置的密码套件(如 -v AES256-SHA256,AES256-SHA )重置为默认值。

示例

为域 31984fea73a15b45779fa0df4ef62f9b 启用 tls_client_auth

ibmcloud cis domain-settings-update 31984fea73a15b45779fa0df4ef62f9b --feature tls_client_auth --value on --instance "cis-demo"

有关详细信息,请参阅 ibmcloud cis domain-settings-update

要恢复默认密码列表,请在 -f ciphers 后指定 -v default

使用 API 管理密码套件

您可以使用 API 来管理密码套件。

使用应用程序接口获取密码

要使用 API 获取密码,请执行以下步骤。

  1. 使用正确的变量设置环境。
  2. 存储要在 API 命令中使用的任何变量。 例如,
    • crn (字符串):资源实例的完整 编码云资源名称(CRN)。URL
    • zone_identifier (字符串): 区域标识。
  3. 启动所有变量时,获取密码:
curl -X GET https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/settings/ciphers -H 'content-type: application/json' -H 'accept: application/json' -H 'x-auth-user-token: Bearer xxxxxx'

使用应用程序接口更新密码

要使用 API 更新密码,请执行以下步骤。

  1. 使用正确的变量设置环境。
  2. 存储要在 API 命令中使用的任何变量。 例如,
    • crn (字符串):资源实例的完整 编码云资源名称(CRN)。URL
    • zone_identifier (字符串): 区域标识。
    • value(字符串): 要包含的密码套件。
  3. 启动所有变量时,获取密码:
curl -X PATCH https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/settings/ciphers -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{"value": ["AES256-GCM-SHA384", "AES256-SHA256"]}'


  1. 虽然 TLS 1.3 与以前版本的 TLS 使用相同的密码套件空间,但 TLS 1.3 密码套件的定义不同,只指定了对称密码,不能用于 TLS 1.2。 同样,TLS 1.2 及以下密码套件不能与 TLS 1.3 一起使用(IETF TLS 1.3 draft 21)。 BoringSSL TLS 1.3,也按此顺序硬编码密码首选项。 ↩︎

  2. 虽然 TLS 1.3 与以前版本的 TLS 使用相同的密码套件空间,但 TLS 1.3 密码套件的定义不同,只指定了对称密码,不能用于 TLS 1.2。 同样,TLS 1.2 及以下密码套件不能与 TLS 1.3 一起使用(IETF TLS 1.3 draft 21)。 BoringSSL TLS 1.3,也按此顺序硬编码密码首选项。 ↩︎

  3. 虽然 TLS 1.3 与以前版本的 TLS 使用相同的密码套件空间,但 TLS 1.3 密码套件的定义不同,只指定了对称密码,不能用于 TLS 1.2。 同样,TLS 1.2 及以下密码套件不能与 TLS 1.3 一起使用(IETF TLS 1.3 draft 21)。 BoringSSL TLS 1.3,也按此顺序硬编码密码首选项。 ↩︎