HTTPS(超文本传输安全协议)是HTTP协议的安全版本,它通过SSL/TLS协议为传输的数据提供加密保护。HTTPS加密套件(Cipher Suite)是一组加密算法和协议,用于在客户端(如浏览器)和服务器之间建立安全的通信连接。为了进一步满足您在使用网关时,对于安全性、兼容性、性能优化以及其他合法合规的要求,云原生API网关支持客户端选择指定的加密套件。
概述
一个HTTPS加密套件通常包括以下几个组成部分:
-
密钥交换算法:用于安全地交换加密通信的密钥。常见的密钥交换算法包括RSA、Diffie-Hellman(DH)和ECDHE(椭圆曲线Diffie-Hellman)。
-
消息认证码(MAC)算法:用于确保数据的完整性和认证,常见的MAC算法包括HMAC-SHA256、HMAC-SHA384等。
-
对称加密算法:用于加密数据本身性,常见的对称加密算法包括AES(高级加密标准)、ChaCha20等。
使用限制
云原生API网关版本为2.0.0及以上。
支持范围
云原生API网关支持的套件及对应支持TLS版本。
|
套件名称 |
支持的TLS版本列表 |
|
ECDHE-ECDSA-AES128-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
ECDHE-ECDSA-AES256-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
ECDHE-RSA-AES128-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
ECDHE-RSA-AES256-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
AES128-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
AES256-SHA |
TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3 |
|
ECDHE-ECDSA-AES128-GCM-SHA256 |
TLS 1.2、TLS 1.3 |
|
ECDHE-ECDSA-CHACHA20-POLY1305 |
TLS 1.2、TLS 1.3 |
|
ECDHE-RSA-AES128-GCM-SHA256 |
TLS 1.2、TLS 1.3 |
|
ECDHE-RSA-CHACHA20-POLY1305 |
TLS 1.2、TLS 1.3 |
|
AES128-GCM-SHA256 |
TLS 1.2、TLS 1.3 |
|
ECDHE-ECDSA-AES256-GCM-SHA384 |
TLS 1.2、TLS 1.3 |
|
ECDHE-RSA-AES256-GCM-SHA384 |
TLS 1.2、TLS 1.3 |
|
AES256-GCM-SHA384 |
TLS 1.2、TLS 1.3 |
操作步骤
登录云原生API网关控制台。
在左侧导航栏,选择域名,并在顶部菜单栏选择地域。
-
若尚未创建域名,单击添加域名。若已创建域名,可单击目标域名操作列下方编辑。
添加域名
-
在添加域名页面域名下拉列表中选择HTTPS协议。
-
单击高级选项,在加密算法套件单选框中选择自定义。在可选算法列表中勾选需要设置的算法,单击创建。
编辑域名
-
编辑域名页面域名下拉列表中选择HTTPS协议。
-
单击高级选项,在加密算法套件单选框中选择自定义。在可选算法列表中勾选需要设置的算法,单击确定。
-
结果验证
-
设置HTTPS域名为指定加密套件,如本例将加密套件指定为:
ECDHE-ECDSA-AES128-GCM-SHA256并设置成功。 -
指定加密套件为
ECDHE-ECDSA-AES128-GCM-SHA256访问。curl -iv --ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256' https://bantian.alijam.top/get --resolve "bantian.alijam.top:443:8.154.33.131" -
指定套件
ECDHE-ECDSA-AES128-GCM-SHA256请求正常返回成功,双方协商使用加密套件ECDHE-ECDSA-AES128-GCM-SHA256。~ curl -iv --ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256' https://bantian.alijam.top/get --resolve "bantian.alijam.top:443:8.xxx" * Added bantian.alijam.top:443:8 xxx to DNS cache * Hostname bantian.alijam.top was found in DNS cache * Trying 8.154.33.131:443... * Connected to bantian.alijam.top (8.154.33.131) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ECDHE-ECDSA-AES128-GCM-SHA256 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-ECDSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 > GET /get HTTP/2 > Host: bantian.alijam.top > < HTTP/2 200 -
指定套件
ECDHE-ECDSA-AES256-GCM-SHA256请求异常,返回失败。→ ~ curl -iv --ciphers 'ECDHE-ECDSA-AES256-GCM-SHA256' https://bantian.alijam.top/get --resolve "bantian.alijam.top:443:8.154.33.131" * Added bantian.alijam.top:443:8.154.33.131 to DNS cache * Hostname bantian.alijam.top was found in DNS cache * Trying 8.154.33.131:443... * Connected to bantian.alijam.top (8.154.33.131) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * failed setting cipher list: ECDHE-ECDSA-AES256-GCM-SHA256 * Closing connection 0 curl: (59) failed setting cipher list: ECDHE-ECDSA-AES256-GCM-SHA256