设置密码套件
密码套件是算法和协议的组合,有助于在 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的有效值是on和off。- 密码的有效值为
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-CHACHA20-POLY1305ECDHE-ECDSA-AES128-SHA256ECDHE-ECDSA-AES128-SHAECDHE-RSA-AES128-SHA256ECDHE-RSA-AES128-SHAAES128-GCM-SHA256AES128-SHA256AES128-SHAECDHE-ECDSA-AES256-GCM-SHA384ECDHE-ECDSA-AES256-SHA384ECDHE-RSA-AES256-GCM-SHA384ECDHE-RSA-AES256-SHA384ECDHE-RSA-AES256-SHAAES256-GCM-SHA384AES256-SHA256AES256-SHADES-CBC3-SHAdefault
-
例如,使用
-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 获取密码,请执行以下步骤。
- 使用正确的变量设置环境。
- 存储要在 API 命令中使用的任何变量。 例如,
crn(字符串):资源实例的完整 编码云资源名称(CRN)。URLzone_identifier(字符串): 区域标识。
- 启动所有变量时,获取密码:
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 更新密码,请执行以下步骤。
- 使用正确的变量设置环境。
- 存储要在 API 命令中使用的任何变量。 例如,
crn(字符串):资源实例的完整 编码云资源名称(CRN)。URLzone_identifier(字符串): 区域标识。value(字符串): 要包含的密码套件。
- 启动所有变量时,获取密码:
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"]}'
-
虽然 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,也按此顺序硬编码密码首选项。 ↩︎
-
虽然 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,也按此顺序硬编码密码首选项。 ↩︎
-
虽然 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,也按此顺序硬编码密码首选项。 ↩︎