
# 添加API的SSL证书
如果API分组中的API支持HTTPS请求协议，则在绑定独立域名后，还需为独立域名添加SSL证书。SSL证书是进行数据传输加密和身份证明的证书，支持单向认证和双向认证两种认证方式。**如果不配置SSL证书，将无法保障请求的链路安全，建议配置。**
- 单向认证：客户端与服务端连接时，客户端需要验证所连接的服务端是否正确。 ![](https://support.huaweicloud.com/usermanual-apig/zh-cn_image_0000001475355676.png "点击放大")
  
- 双向认证：客户端与服务端连接时，除了客户端需要验证所连接的服务器是否正确之外，服务端也需要验证接入的客户端是否正确。 ![](https://support.huaweicloud.com/usermanual-apig/zh-cn_image_0000001485758705.png "点击放大")
  
#### 约束与限制
- 仅支持添加pem编码格式的SSL证书。
- 添加的SSL证书仅支持RSA、ECDSA加密算法。
 
#### 前提条件
- 已获取SSL证书。
- 使用双向认证时，还需要获取CA证书。
 
#### 创建SSL证书
1. 进入[API网关控制台](https://console.huaweicloud.com/apig2/#/overview)页面。
2. 根据实际业务在左侧导航栏上方选择实例。
3. 在左侧导航栏选择"API管理 \> API策略"。
4. 在"SSL证书管理"页面，单击"创建SSL证书"。
5. 根据下表参数说明，配置证书。 
   表1SSL证书配置 
   | 参数   | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 证书名称 | 填写SSL证书的名称，根据规划自定义。建议您按照一定的命名规则填写SSL证书名称，方便您快速识别和查找。 支持中文、英文、数字、英文格式的下划线，必须以英文或中文开头，长度为4\~50个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 可见范围 | 展示证书的范围。 - 当前实例：仅在当前实例下展示此证书。  - 全局：在当前账号和当前Region的所有实例下都会展示此证书。                                                                                                                                                                                                                                                                                                                                                          |
   | 算法类型 | 选择证书所使用的加密算法类型，可选择RSA或ECC。 - RSA：目前在全球应用广泛的非对称加密算法，兼容性在三种算法中最好，支持主流浏览器和全平台操作系统。一般采用2048位或3072位的加密长度。  - ECC：椭圆曲线加密算法。相比于RSA，ECC加密速度快、效率更高、服务器资源消耗低，目前已在主流浏览器中得到推广，成为新一代主流算法。一般采用256位加密长度。                                                                                                                                                                                                                             |
   | 证书内容 | 填写pem编码格式的SSL证书内容。 - 以文本方式打开待添加证书里的PEM格式证书文件（后缀名为".pem"），将证书内容复制到"证书内容"中即可。  - 如果证书为非pem编码格式，可参考[转换证书为PEM格式]进行证书格式转换。                                                                                                                                                                                                                                                                   |
   | 密钥   | 填写pem编码格式的SSL证书密钥。 以文本方式打开待上传证书里的KEY格式或PEM格式的私钥文件（后缀名为".pem"或".key"），将私钥复制到"密钥"中即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | CA   | **双向认证时，需要填写CA证书，CA证书会同时校验服务端证书和客户端证书。** CA证书上传后，独立域名需要绑定[SSL证书](https://support.huaweicloud.com/usermanual-apig/apig_03_0006.html#apig_03_0006__section929954502012)来开启双向认证。以文本方式打开上述证书内容的CA证书文件（后缀名为".pem"），将内容复制到"CA"中即可。 - 如果证书为非pem编码格式，可参考[转换证书为PEM格式]进行证书格式转换。  - 如果当前实例不支持配置CA证书，可[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)升级实例。   |
      
   
   
6. 单击"确定"。 
   在证书列表中显示已创建的证书，表示证书创建成功。
   
   
7. 证书创建完成后，进入API分组页面为独立域名[绑定SSL证书（可选）](https://support.huaweicloud.com/usermanual-apig/apig_03_0006.html#apig_03_0006__section929954502012)。
   
   如果需要修改证书，进入证书列表页面[更新SSL证书]即可。
   
   
 
 #### 转换证书为PEM格式
| 格式类型    | 转换方式（通过[OpenSSL](https://www.openssl.org/)工具进行转换）                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|
| CER/CRT | 将"cert.crt"证书文件直接重命名为"cert.pem"。                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| PFX     | - 提取私钥命令，以"cert.pfx"转换为"key.pem"为例。 openssl pkcs12 -in cert.pfx -nocerts -out key.pem   - 提取证书命令，以"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    |
   
 #### 更新SSL证书
进入证书列表页面，找到待更新证书，在"操作"列单击"编辑"，修改证书信息即可。
- 更新SSL证书不影响API的调用。
- 如果待更新证书已绑定独立域名，那么所有访问这个域名的客户端都会看到更新后的证书。
- 如果更新的SSL证书已绑定独立域名且更新的内容新增CA证书，那么独立域名侧默认关闭"支持客户端认证"即关闭HTTPS双向认证；如果更新的SSL证书已绑定独立域名且更新的内容无CA证书，那么独立域名侧默认关闭"支持客户端认证"即未开启HTTPS双向认证。
 
#### 相关文档
如果您希望通过API创建SSL证书，请参考[创建SSL证书](https://support.huaweicloud.com/api-apig/CreateCertificateV2.html)。
