CLB证书管理

更新时间:
复制 MD 格式

HTTPS监听通过SSL证书实现加密访问和身份认证。本文介绍在CLB中使用证书的完整流程,包括证书选型与格式准备、创建证书、绑定到HTTPS监听,以及后续的更换与到期续期。

证书选型与准备

认证方式

CLB支持单向认证和双向认证两种模式:

  • 单向认证:CLB只需要配置服务器证书。由客户端验证服务器身份。

  • 双向认证:CLB需要同时配置服务器证书、CA证书。服务器和客户端互相验证身份。

大多数面向公网的网站只需使用单向认证。仅当您需要校验客户端身份(例如企业内部系统、API调用方鉴权)时,才需要配置双向认证。

证书来源

CLB支持两种来源的证书:

  • 阿里云数字证书管理服务:直接选择在阿里云数字证书管理服务中已购买的证书,此方式便于统一管理,并可享受证书到期提醒和一键续期服务。仅支持服务器证书,暂不支持客户端CA证书。

  • 第三方签发的证书:上传由其他服务商签发或您自签名的证书,此方式需要您手动上传证书的公钥和私钥文件。支持服务器证书及客户端CA证书。

客户端CA证书只能通过上传证书内容的方式添加,不能从阿里云数字证书管理服务中选择。如果您需要自建CA并签发客户端证书,请参见使用OpenSSL生成CA证书

证书格式要求

CLB只支持PEM格式的证书。在创建证书前,确保您的证书、证书链和私钥符合以下格式要求。其它格式的证书需要先转换为PEM格式,请参见转换证书格式

  • 支持的证书类型:国际标准证书(RSA)。

  • 支持的公钥算法:RSA 1024、RSA 2048、RSA 4096。

  • 不支持上传包含BEGIN DH PARAMETERS字段的PEM文件。HTTPS监听使用的ECDHE算法簇已支持前向保密,无需上传DHE算法簇所需的安全增强参数文件。

公钥证书的格式要求因签发机构而异,请根据您的证书来源查看对应要求:

Root CA机构颁发的证书

如果是通过Root CA机构颁发的证书,您拿到的证书是唯一的一份,不需要额外的证书,配置的站点即可被浏览器等访问设备认为可信。

证书格式必须符合如下要求:

  • -----BEGIN CERTIFICATE-----, -----END CERTIFICATE-----开头和结尾。

  • 每行64个字符,最后一行长度可以不足64个字符。

  • 证书内容不能包含空格。

中级机构颁发的证书

如果是通过中级CA机构颁发的证书,您拿到的证书文件包含多份证书,需要将服务器证书与中级证书合并在一起上传。

证书链格式必须符合如下要求:

  • 服务器证书放第一位,中级证书放第二位,中间不能有空行。

  • 证书内容不能包含空格。

  • 证书之间不能有空行,并且每行64字节。更多信息,请参见RFC1421

  • 符合证书的格式要求。一般情况下,中级机构在颁发证书时会有对应说明,证书要符合证书机构的格式要求。

中级机构颁发的证书链示例如下:

    -----BEGIN CERTIFICATE-----
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    -----END CERTIFICATE-----

RSA私钥格式要求

在上传服务器证书时,您也需要上传证书的私钥。

RSA私钥格式必须符合如下要求:

  • -----BEGIN RSA PRIVATE KEY-----, -----END RSA PRIVATE KEY-----开头和结尾,请将这些内容一并上传。

  • 字串之间不能有空行,每行64字符,最后一行长度可以不足64字符。更多信息,请参见RFC1421

如果您的私钥是加密的,例如私钥的开头和结尾是-----BEGIN PRIVATE KEY-----, -----END PRIVATE KEY----------BEGIN ENCRYPTED PRIVATE KEY-----, -----END ENCRYPTED PRIVATE KEY-----,或者私钥中包含Proc-Type: 4,ENCRYPTED,需要先运行以下命令进行转换:

openssl rsa -in old_server_key.pem -out new_server_key.pem
在部分高版本openssl中,openssl rsa默认输出PKCS#8,这将导致转换失败。请使用openssl rsa -in old_server_key.pem -out new_server_key.pem -traditional进行转换。

转换证书格式

如果您的证书不是PEM格式,请使用OpenSSL转换为PEM格式后再上传。

DER转换为PEM

DER格式通常使用在Java平台中,证书文件后缀一般为.der.cer或者.crt

  • 运行以下命令进行证书转换:

    openssl x509 -inform der -in certificate.cer -out certificate.pem
  • 运行以下命令进行私钥转换:

    openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem

P7B转换为PEM

P7B格式通常使用在Windows ServerTomcat中。

运行以下命令进行证书转换:

openssl pkcs7 -print_certs -in incertificate.p7b -out outcertificate.cer

PFX转换为PEM

PFX格式通常使用在Windows Server中。

  • 运行以下命令提取证书:

    openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
  • 运行以下命令提取私钥:

    openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes

多域名场景下的证书匹配逻辑

一个HTTPS监听只能配置一个默认证书。如果需要在同一个HTTPS监听上为多个域名分别使用不同的证书,需要通过扩展域名功能实现。

客户端访问时,CLB通过SNI(Server Name Indication)识别请求的域名:优先使用该域名所配置扩展域名上的证书;如果找不到匹配的证书,则使用监听配置的默认证书。

当一个监听使用多张泛域名(通配符)证书时,只有最先配置的那张泛域名证书会自动匹配其名下的所有子域名。之后配置的泛域名证书不会自动匹配,需要为每一个具体的子域名单独添加扩展域名,并指定使用对应的泛域名证书。

例如,您先配置了*.example.com证书,之后又配置了*.test.com证书,则两者的匹配行为不同:

客户端访问的域名

能否自动匹配到对应证书

需要的操作

abc.example.com

能。自动匹配*.example.com证书

无需额外配置

abc.test.com

不能。默认不会自动匹配*.test.com证书

需为abc.test.com添加扩展域名,并指定使用*.test.com证书

使用扩展域名时请注意:

  • 仅性能保障型CLB实例支持SNI,即支持配置扩展域名。

  • 添加的扩展域名与所选服务器证书中的域名必须一致。

  • 扩展域名需要和转发策略配合使用才能生效,且转发策略中配置的域名要与扩展域名一致。

  • 一个HTTPS监听默认最多添加3个扩展域名,最大可提升至10个。

扩展域名的配置方法与完整说明,请参见CLB扩展域名

使用限制

  • HTTPS监听支持绑定证书。HTTP监听为明文传输,TCP、UDP等四层监听不支持绑定证书;如需在这些监听上实现加密传输,请将证书部署在后端服务器上。

  • 证书不支持跨地域、跨账号使用。如需在多个地域使用,请在创建证书时选择所有需要的地域;如需在多个账号使用,需先在已创建证书的账号下载SSL证书,再到目标账号上传

创建证书

控制台

  1. 完成准备工作:

    • 使用阿里云签发的证书:确保已在SSL证书控制台购买或上传所需的服务器证书。

    • 使用第三方签发的证书:准备好PEM格式的服务器证书公钥和私钥文件;配置双向认证时,还需准备PEM格式的CA证书公钥文件。

  2. 前往CLB控制台,在左侧导航栏选择传统型负载均衡 CLB > 证书管理,单击创建证书

  3. 创建证书面板,根据证书来源完成配置,然后单击创建

    • 选择阿里云签发证书,从证书列表中选择所需的SSL证书,并选择证书部署地域

    • 选择上传非阿里云签发证书,完成以下配置:

      • 证书类型:选择本次要上传的证书类型,页面会根据所选类型显示对应的配置项。

        • 选择服务器证书时,上传公钥证书私钥,并选择证书部署地域

        • 选择CA证书时,上传客户端CA公钥证书(用于双向认证中校验客户端身份),并选择证书部署地域

      上传的证书内容均兼容NGINX格式。您可以单击查看样例参考正确格式

API

  • 调用UploadServerCertificate上传服务器证书。使用阿里云签发的证书时,传入AliCloudCertificateId指定证书;上传第三方证书时,通过ServerCertificatePrivateKey传入证书内容和私钥。

  • 调用UploadCACertificate上传客户端CA证书,通过CACertificate传入证书内容。

将证书绑定到HTTPS监听

证书创建完成后,需要绑定到HTTPS监听才会生效。证书在添加HTTPS监听时选择,以下仅列出与证书相关的配置项,完整的监听配置流程请参见添加HTTPS监听

HTTPS监听在CLB上完成解密,转发到后端服务器时使用HTTP协议而非HTTPS。因此后端服务器需以HTTP协议提供服务,并确保健康检查、后端端口等配置与HTTP协议匹配(例如后端端口通常为80)。

控制台

  1. 前往CLB控制台找到目标实例,在操作单击监听配置向导添加HTTPS监听。

  2. SSL证书配置向导,选择已创建的服务器证书。

  3. 可选:单击高级配置右侧的编辑,按需配置双向认证和TLS安全策略。

    • 打开启用双向认证开关,选择已上传的CA证书。如果您使用自建CA签发客户端证书,请参见使用OpenSSL生成CA证书

    • 选择TLS安全策略。仅性能保障型实例支持选择TLS安全策略,各策略支持的TLS协议版本与加密套件请参见TLS安全策略

  4. 按向导提示完成后端服务器、健康检查等配置并提交,监听创建成功后证书即生效。

API

更换证书

证书即将到期、需要更换签发机构或证书配置有误时,您需要更换证书。CLB提供两种更换方式,请根据影响范围选择。无论使用哪种方式,更换完成后都建议验证证书是否生效

对比项

方式一:替换监听证书

方式二:通过证书管理替换证书

影响范围

仅当前HTTPS监听的默认证书

所有关联该证书的监听和扩展域名

适用场景

只需更换某一个监听的证书,或同时需要调整双向认证、TLS安全策略

同一张证书被多个监听或扩展域名使用,需要一次性全部更换

前提条件

该证书至少已关联一个监听或扩展域名

重要

更换证书时,CLB会更新监听的证书配置,过程中可能出现短暂的HTTPS连接中断(约数秒,表现为SSL连接错误),随后自动恢复,建议在业务低峰期执行。如果更换后出现异常,可将监听证书改回原证书进行回滚。

方式一:替换监听证书

控制台

  1. 前往CLB控制台,单击目标实例ID,在监听页签找到目标HTTPS监听,在操作列单击管理证书

  2. 管理证书面板的选择服务器证书(默认证书)下拉框中选择新的服务器证书;如需同时调整双向认证或TLS安全策略,可在高级配置中修改,然后单击确定

此方式仅更换监听的默认证书,不会更换扩展域名上的证书。如果该监听配置了扩展域名,请另行更新扩展域名的证书,或改用下面的方式一次性替换证书的所有关联对象。

API

  1. 调用UploadServerCertificate上传新证书,获取新的证书ID。

  2. 调用SetLoadBalancerHTTPSListenerAttribute,传入新的ServerCertificateId更新HTTPS监听的证书。

  3. 如果该监听配置了扩展域名,还需针对每个扩展域名调用SetDomainExtensionAttribute分别更新其证书。

    仅更新监听证书不会同时更新扩展域名上的证书。如果漏掉扩展域名,通过对应域名访问时仍会使用旧证书。

方式二:通过证书管理替换证书

通过证书管理替换证书后,所有关联该证书的监听或扩展域名上的证书也将自动替换。

至少关联了一个监听或者扩展域名的证书才能被替换。
  1. 前往CLB控制台,在左侧导航栏选择传统型负载均衡 CLB > 证书管理

  2. 证书管理页面,找到需要替换的目标证书,在操作单击替换证书。在替换服务器证书页面完成配置后,单击替换证书

    • 选择创建一个证书并替换

      • 选择阿里云签发证书,在证书列表选择新的证书。

      • 选择上传非阿里云签发证书,粘贴新证书的公钥和私钥内容。

    • 选择使用已有证书替换,在已有证书列表中选择用来替换的服务器证书。

  3. 单击去证书列表查看,在证书管理页面可确认关联的监听和扩展域名已更新新证书。

验证证书是否生效

  • 通过浏览器访问站点,查看证书详情中的有效期。建议使用无痕模式,避免缓存影响判断。

  • 如果配置了扩展域名,需要对每个域名分别验证,确认各域名返回的都是预期的证书。

证书到期与续期

证书到期后,客户端访问您的站点会提示证书已过期或不安全,因此需要在到期前完成更换。

使用阿里云数字证书管理服务签发的证书时,可享受证书到期提醒和一键续期服务,建议在该服务中及时关注到期通知。

在证书到期前,请先获取新证书(在阿里云数字证书管理服务中续费或重新签发证书,或向第三方签发机构申请新证书),再根据前述章节在CLB中完成证书的更换与验证。

重要

在数字证书管理服务中续费或重新签发证书后,CLB监听上使用的证书不会自动更新,仍需在CLB中执行更换证书操作。

更多信息

配额

配额名称

描述

默认值

是否支持申请

slb_quota_certs_num

每个地域可上传的服务器证书数量

100

slb_quota_ca_certs_num

每个地域可上传的客户端CA证书数量

100