
# 上传证书
**云模式-CNAME** 、**独享模式**场景下，WAF作为防护网站反向代理防护节点，所有客户端HTTPS访问流量都会先经过WAF，再转发至源站。当防护网站"对外协议"设置为"HTTPS"时，要求客户端与WAF之间的通信全程加密，而SSL证书是HTTPS加密通信的唯一合法凭证与加密载体，没有证书则无法完成SSL握手，浏览器会直接拦截访问、提示网站不安全、连接失败。
因此，添加网站时，如果"对外协议"为"HTTPS"，则需要将证书上传到WAF，并将证书绑定到防护网站，确保客户端与WAF之间的通信全程加密。
#### 概念说明
- **国际证书**：WAF支持国际证书。该证书遵循国际密码标准，使用RSA/ECC算法的SSL证书，绝大多数浏览器、客户端原生支持，互联网业务通用证书类型。仅需要一份证书文件 + 一份私钥。
- **国密证书** ：WAF支持国密证书。该证书遵循我国商用密码SM2/SM3/SM4算法标准，采用双证书体系，分为签名证书（身份签名校验）、加密证书（密钥协商加密），每组包含签名证书、签名私钥、加密证书、加密私钥4份内容。
  仅**华北‑乌兰察布一** 地域支持。如果使用**独享模式**，则独享引擎需要升级至最新版本。
  
- **SCM** **（** **SSL Certificate Manager** **，SSL证书管理）** ：华为云**云证书与管理服务 CCM**提供的SSL证书管理平台，由华为云联合全球知名数字证书服务机构（CA，Certificate Authority），在华为云平台上为您提供一站式SSL证书的全生命周期管理，实现网站的可信认证与安全数据传输，支持证书购买、上传、续费、一键推送到WAF。
- **PEM** **格式**：ASCII文本格式证书，文件以‑‑‑‑BEGIN XXX‑‑‑‑开头、‑‑‑‑END XXX‑‑‑‑结尾。WAF仅支持PEM格式，CER/CRT/PFX/P7B/DER等二进制格式，需要转换为PEM格式后上传。
 
#### 典型业务场景
- **普通互联网业务站点**：域名接入WAF做HTTPS防护，证书从第三方CA购买，本地拿到PEM证书与私钥，需要手动上传WAF，后续绑定防护网站。
- **华为云SCM托管证书场景**：已在SCM购买并上传证书，且业务在default企业项目，可直接推送证书到WAF，无需复制粘贴证书文本。
- **国密合规业务站点** ：政务、金融业务，要求使用国密SM系列加密算法，部署WAF独享模式，部署地域为**华北‑乌兰察布一**，可上传国密双证书（签名 + 加密两套证书与私钥）。
- **证书到期更新场景**：旧证书即将过期，获取新证书后，在证书管理列表执行更换操作，替换原有证书。
 
#### 手动上传证书与SCM推送证书差异
绑定防护网站时，WAF支持手动上传的证书、SCM推送的证书两种。不同证书获取方式的差别[表1]如所示。
 表1手动上传证书与SCM推送证书差异 
| 对比项      | 手动上传证书                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | SCM推送证书                                                                                                   |
|:---|:---|:---|
| 证书来源     | 第三方CA、本地证书文件                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 云证书与管理服务 CCM的SSL证书管理平台                                                                                    |
| 操作方式     | - 添加防护网站时，导入新证书。具体操作，请参见[导入新证书（云模式-CNAME）](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#waf_01_0002__li14921948507)、[导入新证书（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html#waf_01_0250__waf_01_0002_li14921948507)。  - 在"证书管理"页面，添加证书。具体操作，请参见[上传证书]。   | 云证书与管理服务 CCM一键推送至WAF。具体操作，请参见[推送证书到云产品](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0141.html)。 |
| 企业项目限制   | 支持全部企业项目                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 仅支持"default"企业项目，则不能选择使用SCM推送的SSL证书。                                                                      |
| 证书生命周期管理 | WAF仅存储证书，到期提醒需自行配置。具体操作，请参见[开启告警通知](https://support.huaweicloud.com/usermanual-waf/waf_01_0019.html)。                                                                                                                                                                                                                                                                                                                                                                                    | 云证书与管理服务 CCM统一管理证书到期、续费、更新。                                                                               |
| 证书统计     | 添加到"证书管理"页面的证书列表，并占用证书套数配额。                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 添加到"证书管理"页面的证书列表，并占用证书套数配额。                                                                               |
   
#### 规格限制
WAF支持上传的证书套数和WAF支持防护的域名的个数相同。
例如，购买了标准版WAF（支持防护20个域名）、1个独享版WAF（支持防护2,000个域名）和域名扩展包（20个域名），WAF可以防护2,040个域名，则WAF支持上传2,040套证书。
#### 约束条件
- 仅华北-乌兰察布一地域支持国密证书。
- 使用国密证书前，请确认已将独享引擎升级到最新版本。
- 证书必须为PEM格式，非PEM格式需要先转换格式。
- 国际证书上传默认开启证书和私钥匹配校验，不匹配则上传失败。
- 证书名称在当前企业项目下不可重复。
 
#### 前提条件
- 已获取证书文件和证书私钥信息，且证书和私钥匹配。国密证书需要同时获取签名证书、签名私钥、加密证书、加密私钥。
- 若证书非PEM格式，已经使用OpenSSL工具转换为PEM编码格式。具体操作，请参见[转换证书格式]。
 
 #### 上传证书
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"对象管理 \> 证书管理"。
5. 在证书列表左上方，单击"添加证书"。
6. 在"添加证书"面板，根据要添加的证书类型，完成如下配置后，单击"确定"。 
   表2添加国际证书 
   | 参数              | 参数说明                                                                                                                                                     | 取值样例                                                                                                                                                                                                                                                               |
   |:---|:---|:---|
   | **证书类型**        | 选择要添加的证书类型。此处选择"国际证书"。                                                                                                                                   | 国密证书                                                                                                                                                                                                                                                               |
   | **证书名称**        | 填写证书名称。                                                                                                                                                  | 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----- |
   | **校验证书和私钥是否匹配** | 勾选该项。如果证书和私钥不匹配，可单击"如何解决证书与私钥不匹配问题"，查看解决方法。                                                                                                              | -                                                                                                                                                                                                                                                                  |
      
   表3添加国密证书 
   | 参数       | 参数说明                                                                                                                                     | 取值样例                                                                                                                                                                                                                                                                                         |
   |:---|:---|:---|
   | **证书类型** | 选择要添加的证书类型。此处选择"国密证书"。                                                                                                                   | 国密证书                                                                                                                                                                                                                                                                                         |
   | **证书名称** | 填写证书名称。                                                                                                                                  | 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-----                               |
      
   
   
 
#### 操作结果验证
完成以上配置后，您可以通过以下方式确认证书是否可用：
- **控制台查看校验**：在证书列表，找到已上传的证书，单击"操作"列的"查看"，核对证书类型、证书文件、证书私钥内容与预期一致。
- **绑定域名业务验证**：将证书绑定防护HTTPS域名，浏览器访问https://{域名}，查看地址栏锁图标，单击查看证书颁发机构、域名、有效期信息是否匹配预期。
- **命令行校验（运维推荐）**
  ```
  bash
  openssl s_client -connect 域名:443 -servername 域名
  ```
  查看输出中的"subject"、"issuer"、"notAfter"字段，确认域名、签发机构、过期时间正确，无证书链报错。
  
 
 #### 相关操作
- **修改证书名称** ：当鼠标移到目标证书的名称后时，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0269115287.png)，您可以修改证书的名称。
  如果证书正在使用中，请先解除域名和证书的绑定关系，否则无法修改证书名称。
  
- **查看证书**：在目标证书所在行的"操作"列中，单击"查看"，您可以查看证书的证书文件和证书私钥信息。
- **绑定证书**：在目标证书所在行的"操作"列中，单击"应用"，您可以将证书绑定到对应的域名。
- 在目标证书所在行的"操作"列中，单击"更多 \> 删除"，您可以删除该证书。
- **更新证书**：在目标证书所在行的"操作"列中，单击"更多 \> 更新"，您可以重新更新该域名绑定的证书。
- **证书共享**：在目标证书所在行的"操作"列中，单击"更多 \> 共享"，您可以将证书共享给其他企业项目使用。
- **删除证书** ：在目标证书所在行的"操作"列中，单击"更多 \> 停止共享"，您可以将证书取消共享给其他企业项目使用。
  ![](https://support.huaweicloud.com/usermanual-waf/public_sys-resources/caution_3.0-zh-cn.png)
  - 删除证书前，必须确认证书没有被任何防护域名绑定；若证书仍被域名绑定，删除操作会导致对应域名失去HTTPS证书、HTTPS业务访问异常。如果确认要删除该证书，须先解除域名绑定关系。
  
  - 证书删除后**不可恢复**，请确认证书不再被任何防护域名使用再执行删除操作，误删除需要重新上传证书文件。
    

- **转换证书格式** ：WAF当前仅支持PEM格式证书。如果证书为非PEM格式，需参考[表4]，在本地将证书转换为PEM格式。
  ![](https://support.huaweicloud.com/usermanual-waf/public_sys-resources/caution_3.0-zh-cn.png)
  - 执行openssl命令前，请确保本地已安装[openssl](https://www.openssl.org/)。
  
  - 如果本地为Windows操作系统，请进入"命令提示符"对话框后，再执行证书转换命令。
   
   表4证书转换命令 
  | 格式类型    | 转换方式                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|
  | CER/CRT | 将"cert.crt"证书文件直接重命名为"cert.pem"。                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | PFX     | - 提取私钥命令，以"cert.pfx"转换为"key.pem"为例。 **openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes**   - 提取证书命令，以"cert.pfx"转换为"cert.pem"为例。 **openssl** **pkcs12** **-in** **cert.pfx** **-nokeys** **-out** **cert.pem**                                                                             |
  | P7B     | 1. 证书转换，以"cert.p7b"转换为"cert.cer"为例。 **openssl** **pkcs7** **-print_certs** **-in** **cert.p7b** **-out** **cert.cer**   2. 将"cert.cer"证书文件直接重命名为"cert.pem"。                                                                                                                                     |
  | DER     | - 提取私钥命令，以"privatekey.der"转换为"privatekey.pem"为例。 **openssl** **rsa** **-inform** **DER** **-outform** **PEM** **-in** **privatekey.der** **-out** **privatekey.pem**   - 提取证书命令，以"cert.cer"转换为"cert.pem"为例。 **openssl** **x509** **-inform** **der** **-in** **cert.cer** **-out cert.pem**    |
     
  
 
#### 常见问题
- 上传证书后，部分安卓手机、老旧客户端访问HTTPS网站报证书不信任，大概率证书链缺失中间CA证书：[如何解决证书链不完整？](https://support.huaweicloud.com/trouble-waf/waf_01_0082.html)
- 上传国际证书控制台提示公私钥校验失败，无法添加证书：[如何解决证书与密钥不匹配问题？](https://support.huaweicloud.com/trouble-waf/waf_01_1082.html)
- PC访问HTTPS正常，部分移动端浏览器访问网站异常、报证书警告：[如何解决HTTPS请求在部分手机访问异常？](https://support.huaweicloud.com/trouble-waf/waf_01_0093.html)
- 部分老旧客户端访问WAF防护HTTPS网站握手失败，提示SSL协议版本不支持：[如何处理"协议不受支持，客户端和服务器不支持一般 SSL 协议版本或加密套件"？](https://support.huaweicloud.com/trouble-waf/waf_01_1311.html)
- 安全扫描工具检测防护域名SSL存在Bar Mitzvah Attack安全漏洞告警：[如何解决"网站被检测到：SSL/TLS 存在Bar Mitzvah Attack漏洞"？](https://support.huaweicloud.com/trouble-waf/waf_01_3312.html)
 
