上传证书
云模式-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如所示。
| 对比项 | 手动上传证书 | SCM推送证书 |
|---|---|---|
| 证书来源 | 第三方CA、本地证书文件 | 云证书与管理服务 CCM的SSL证书管理平台 |
| 操作方式 |
| 云证书与管理服务 CCM一键推送至WAF。具体操作,请参见推送证书到云产品。 |
| 企业项目限制 | 支持全部企业项目 | 仅支持“default”企业项目,则不能选择使用SCM推送的SSL证书。 |
| 证书生命周期管理 | WAF仅存储证书,到期提醒需自行配置。具体操作,请参见开启告警通知。 | 云证书与管理服务 CCM统一管理证书到期、续费、更新。 |
| 证书统计 | 添加到“证书管理”页面的证书列表,并占用证书套数配额。 | 添加到“证书管理”页面的证书列表,并占用证书套数配额。 |
规格限制
WAF支持上传的证书套数和WAF支持防护的域名的个数相同。
例如,购买了标准版WAF(支持防护20个域名)、1个独享版WAF(支持防护2,000个域名)和域名扩展包(20个域名),WAF可以防护2,040个域名,则WAF支持上传2,040套证书。
约束条件
- 仅华北-乌兰察布一地域支持国密证书。
- 使用国密证书前,请确认已将独享引擎升级到最新版本。
- 证书必须为PEM格式,非PEM格式需要先转换格式。
- 国际证书上传默认开启证书和私钥匹配校验,不匹配则上传失败。
- 证书名称在当前企业项目下不可重复。
前提条件
- 已获取证书文件和证书私钥信息,且证书和私钥匹配。国密证书需要同时获取签名证书、签名私钥、加密证书、加密私钥。
- 若证书非PEM格式,已经使用OpenSSL工具转换为PEM编码格式。具体操作,请参见转换证书格式。
上传证书
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,选择。
- 在证书列表左上方,单击“添加证书”。
- 在“添加证书”面板,根据要添加的证书类型,完成如下配置后,单击“确定”。
表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证书、HTTPS业务访问异常。如果确认要删除该证书,须先解除域名绑定关系。
- 证书删除后不可恢复,请确认证书不再被任何防护域名使用再执行删除操作,误删除需要重新上传证书文件。
- 转换证书格式:WAF当前仅支持PEM格式证书。如果证书为非PEM格式,需参考表4,在本地将证书转换为PEM格式。
- 执行openssl命令前,请确保本地已安装openssl。
- 如果本地为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
- 证书转换,以“cert.p7b”转换为“cert.cer”为例。
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
- 将“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证书:如何解决证书链不完整?
- 上传国际证书控制台提示公私钥校验失败,无法添加证书:如何解决证书与密钥不匹配问题?
- PC访问HTTPS正常,部分移动端浏览器访问网站异常、报证书警告:如何解决HTTPS请求在部分手机访问异常?
- 部分老旧客户端访问WAF防护HTTPS网站握手失败,提示SSL协议版本不支持:如何处理“协议不受支持,客户端和服务器不支持一般 SSL 协议版本或加密套件”?
- 安全扫描工具检测防护域名SSL存在Bar Mitzvah Attack安全漏洞告警:如何解决“网站被检测到:SSL/TLS 存在Bar Mitzvah Attack漏洞”?