# WAF证书管理最佳实践
**云模式-CNAME** 或**独享模式**场景下，"对外协议"为"HTTPS"时，网站需要配置SSL（Secure Sockets Layer，安全套接层）证书，用于客户端与WAF之间的加密传输。WAF作为反向代理部署在客户端与源站之间，需将SSL证书上传至WAF并绑定到对应的防护域名，HTTPS请求才能正常通过WAF完成解密检测与转发。
证书存在有效期，且随着业务扩展可能涉及多域名、多企业项目等场景，证书的申请、上传、绑定、到期更新与共享构成完整的生命周期管理。本最佳实践介绍如何结合云证书与管理服务（Cloud Certificate Manager，CCM）与Web应用防火墙（WAF）证书管理功能，实现网站HTTPS证书的全生命周期管理，保障业务加密传输的持续可用与安全合规。
#### 生命周期管理
![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002702345352.png "点击放大")
#### 操作流程
| 步骤                                                         | 说明                        |
|:---|:---|
| [步骤一：申请SSL证书（CCM）]   | 介绍如何在云证书与管理服务 CCM申请SSL证书。  |
| [步骤二：上传证书至WAF]         | 介绍如何将申请的SSL证书上传到WAF进行管理。   |
| [步骤三：将证书绑定到防护域名] | 介绍如何将证书绑定到防护域名。          |
| [步骤四：证书到期更新]         | 介绍证书到期时，如何更新。            |
| [步骤五：多域名证书共享]        | 介绍如何将该项目下的证书共享给其他企业项目使用。 |
   
#### 前提条件
- 已完成WAF网站接入（云模式-CNAME 接入或独享模式），且防护网站的"对外协议"为"HTTPS"。
- 已获取证书文件和证书私钥。WAF当前仅支持PEM格式证书，如证书为非PEM格式，请先在本地转换为PEM格式后再上传。
- 如需通过CCM购买证书，请已开通云证书与管理服务（CCM）。
 
 #### 步骤一：申请SSL证书（CCM）
证书可以从华为云云证书与管理服务（CCM）申请，只要获取到证书文件和私钥，即可在WAF中使用。本文以从华为云云证书与管理服务（CCM）申请SSL证书进行说明。
1. [购买SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_03_0007.html)。
2. [申请SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0311.html)。
3. [域名验证](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0076.html)。
4. [组织验证](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0089.html)。
5. [签发SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0107.html)。
6. [推送SSL证书到WAF](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0141.html)。
 
 #### 步骤二：上传证书至WAF
如果从华为云云证书与管理服务（CCM）申请的证书已推送到WAF，则无需单独上传。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"对象管理 \> 证书管理"。
5. 在证书列表左上方，单击"添加证书"。
6. 在"添加证书"面板，根据要添加的证书类型，完成如下配置后，单击"确定"。 
   表1添加国际证书 
   | 参数              | 参数说明                                                                                                                                                                            | 取值样例                                                                                                                                                                                                                                                                                                             |
   |:---|:---|:---|
   | **证书类型**        | 选择要添加的证书类型。此处选择"国际证书"。                                                                                                                                                           | 国密证书                                                                                                                                                                                                                                                                                                               |
   | **证书名称**        | 填写证书名称。                                                                                                                                                                        | waf_international                                                                                                                                                                                                                                                                                                |
   | **证书文件**           | 证书的公钥证书文件，PEM编码，包含公钥、防护域名、有效期、签发机构等公开信息。WAF在HTTPS握手时将证书下发客户端，用于站点身份校验与密钥加密。 可以以文本方式打开待添加证书中的PEP格式的文件（后缀名为.pep），将证书内容复制到此处。   | -----BEGIN CERTIFICATE----- MIIDIjCCAougAwIBAgIJALV96mEtVF4EMA0GCSqGSIb3DQEBBQUAMGoxCzAJBgNVBAYTAnh4MQswCQYDVQQIEwJ4eDELMAkGA1UEBxMCeHgxCzAJBgNVBAoTAnh4MQswCQYDVQQLEwJ -----END CERTIFICATE-----      |
   | **证书私钥**        | 与证书文件配对的私有密钥，PEM编码，存储于WAF侧。用于解密会话密钥与握手签名，属于高危敏感信息，禁止外泄。证书文件与证书私钥必须匹配，否则上传失败。 可以以文本方式打开待添加证书中的KEY格式的文件（后缀名为.key），将私钥复制到此处。 | -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDFPN9ojPndxSC4E1pqWQVKGHCFlXAAGBOxbGfSzXqzsoyacotueqMqXQbxrPSQFATeVmhZPNVEMdvcAMjYsV/mymtAwVqVA6q/OFdX/b3UHO+b/VqLo3J5SrM -----END RSA PRIVATE KEY----- |
   | **校验证书和私钥是否匹配** | 勾选该项。如果证书和私钥不匹配，可单击"如何解决证书与私钥不匹配问题"，查看解决方法。                                                                                                                                    | -                                                                                                                                                                                                                                                                                                                 |
      
   表2添加国密证书 
   | 参数         | 参数说明                                                                                                                                                            | 取值样例                                                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|
   | **证书类型**   | 选择要添加的证书类型。此处选择"国密证书"。                                                                                                                                           | 国密证书                                                                                                                                                                                                                                                                                                             |
   | **证书名称**  | 填写证书名称。                                                                                                                                                        | waf_chinese                                                                                                                                                                                                                                                                                                    |
   | **签名文件**    | 国密双证书体系中的公钥证书，携带SM2签名公钥，用于服务端身份认证与报文签名校验，可对外公开。 以文本方式打开待上传证书里的签名证书PEM格式的文件（后缀名为".pem"），将证书内容复制到此处。           | -----BEGIN CERTIFICATE----- MIIDIjCCAougAwIBAgIJALV96mEtVF4EMA0GCSqGSIb3DQEBBQUAMGoxCzAJBgNVBAYTAnh4MQswCQYDVQQIEwJ4eDELMAkGA1UEBxMCeHgxCzAJBgNVBAoTAnh4MQswCQYDVQQLEwJ -----END CERTIFICATE-----     |
   | **签名私钥** | 与签名证书配对的私钥，保存在WAF侧，用于生成数字签名，证明报文未被篡改，属于敏感信息禁止外泄。 以文本方式打开待上传证书里的签名私钥KEY格式的文件（后缀名为".key"），将私钥复制到此处。          | -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDFPN9ojPndxSC4E1pqWQVKGHCFlXAAGBOxbGfSzXqzsoyacotueqMqXQbxrPSQFATeVmhZPNVEMdvcAMjYsV/mymtAwVqVA6q/OFdX/b3UHO+b/VqLo3J5SrM -----END RSA PRIVATE KEY----- |
   | **加密证书**   | 国密双证书体系中的公钥证书，携带SM2加密公钥，客户端使用该证书公钥加密会话密钥，证书可对外公开。 以文本方式打开待上传证书里的加密证书PEM格式的文件（后缀名为".pem"），将证书内容复制到此处。       | -----BEGIN CERTIFICATE----- MIIDIjCCAougAwIBAgIJALV96mEtVF4EMA0GCSqGSIb3DQEBBQUAMGoxCzAJBgNVBAYTAnh4MQswCQYDVQQIEwJ4eDELMAkGA1UEBxMCeHgxCzAJBgNVBAoTAnh4MQswCQYDVQQLEwJ -----END CERTIFICATE-----    |
   | **加密私钥**     | 与加密证书配对的私钥，保存在WAF侧，用于解密客户端传递的会话密钥，完成国密SSL密钥协商，属于敏感信息禁止外泄。 以文本方式打开待上传证书里的加密私钥KEY格式的文件（后缀名为".key"），将私钥内容复制到此处。 | -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDFPN9ojPndxSC4E1pqWQVKGHCFlXAAGBOxbGfSzXqzsoyacotueqMqXQbxrPSQFATeVmhZPNVEMdvcAMjYsV/mymtAwVqVA6q/OFdX/b3UHO+b/VqLo3J5SrM -----END RSA PRIVATE KEY-----    |
      
   
   
 
 #### 步骤三：将证书绑定到防护域名
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"对象管理 \> 证书管理"。
5. 在目标证书所在行的"操作"列中，单击"应用"。
6. 在弹出的"应用域名"对话框中，选择应用该证书的防护网站。
7. 单击"确定"，将证书绑定到防护网站。
 
 #### 步骤四：证书到期更新
建议在证书到期前及时更新证书，避免证书过期导致HTTPS访问异常或 WAF 防护规则不生效。您也可以在 告警通知界面[配置证书过期提醒](https://support.huaweicloud.com/usermanual-waf/waf_01_0019.html)。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"资产管理 \> 防护对象"。
5. 在"防护对象"页面，单击目标防护域名。
6. 在证书所在行的证书名称后，单击"修改"，在"更新证书"面板，上传新证书或者选择已有证书。 
   - 如果已完成[上传证书到WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0262.html#section6)操作，"更换方式"选择"选择已有证书"后，在证书下拉框选择已上传到WAF的证书即可。
   
   - 如果未完成[上传证书到WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0262.html#section6)操作，"更换方式"可选择"添加有证书"后，填写证书名称、证书文件、证书私钥即可。具体填写要求，可参见[上传证书到WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0262.html#section6)。
   
   - 如果该证书是在华为云云证书与管理服务（CCM）申请，且已推送到WAF，"更换方式"可选择"SCM证书"，在证书下拉框选择相应证书即可。
   
   
   
   
 
 #### 步骤五：多域名证书共享
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"对象管理 \> 证书管理"。
5. 在目标证书所在列的"操作"列，单击"更多 \> 共享"。
6. 在弹出的对话框中，选择企业项目，并单击"确定"。 
   图1共享企业项目证书   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002717968416.png "点击放大")
   完成以上配置，可执行如下操作验证：
   1. 在源企业项目证书列表，确认证书 "共享状态" 更新为**已共享**。
   
   2. 切换至被共享的目标企业项目，可查看该已共享证书。
   
   3. 在目标企业项目的防护域名配置页面，可以正常选择该共享证书绑定HTTPS域名。
   
   
   
   
完成以上操作，您可以完成WAF防护网站HTTPS证书的申请、上传、绑定、到期更新与多企业项目共享，实现证书的全生命周期管理，保障网站加密传输持续可用。建议结合证书过期告警功能提前规划证书更新，避免因证书过期影响业务。
