
# 上传VPN网关证书 - UploadGatewayCertificates
#### 功能介绍
国密型网关上传证书和私钥。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-vpn/vpn_api_0008.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vpn/vpn_api_0044.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
| 授权项                    | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| vpn:vpnGateways:create | write | vpnGateways | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)   | -  | -      |
   
#### URI
POST /v5/{project_id}/vpn-gateways/{vgw_id}/certificate
表1参数说明 
| 名称         | 类型     | 是否必选 | 描述                                                                                  |
|:---|:---|:---|:---|
| project_id | String | 是    | 项目ID，可以通过[获取项目ID](https://support.huaweicloud.com/api-vpn/vpn_api_0051.html)获取项目ID。 |
| vgw_id     | String | 是    | 国密型网关ID。                                                                            |
   
#### 请求消息
- 请求参数
  表2CreateVpnGatewayCertificateRequestBody 
  | 名称          | 类型                                                                                                  | 是否必选 | 描述         |
  |:---|:---|:---|:---|
  | certificate | [CreateVpnGatewayCertificateRequestBodyContent] object | 是    | VPN网关证书对象。 |
     
   表3CreateVpnGatewayCertificateRequestBodyContent 
  | 名称                | 类型     | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|:---|
  | name              | String | 否    | - 功能说明：VPN网关证书名称。  - 取值范围：3-63个字符、支持数字、英文字母、中文(\\u4e00 - \\u9fa5)、_(下划线)、-(中划线)、.(英文句点)。  - 默认值：不填时会自动生成格式为vpngw-\*\*\*\*的名称。例如：cert-a45b。   |
  | certificate       | String | 是    | - 功能说明：签名证书。  - 取值范围：1-4096个字符。 必须是国密型非CA证书。                                                                                                                                |
  | private_key       | String | 是    | - 功能说明：国密签名证书私钥。  - 取值范围：1-4096个字符。 与签名证书的公钥匹配。                                                                                                                          |
  | certificate_chain | String | 是    | - 功能说明：CA证书内容。  - 取值范围：1-8192个字符。 必须是国密型CA证书。                                                                                                                           |
  | enc_certificate   | String | 是    | - 功能说明：加密证书。  - 取值范围：1-4096个字符。 必须是国密型非CA证书。                                                                                                                          |
  | enc_private_key   | String | 是    | - 功能说明：国密加密证书私钥。  - 取值范围：1-4096个字符。 与加密证书的公钥匹配。                                                                                                                             |
     
  
- 请求样例
  ```
  POST https://{Endpoint}/v5/{project_id}/vpn-gateways/certificate
  {
      "certificate": {
          "name": "cert-dce7",
          "certificate": "-----BEGIN CERTIFICATE-----\n******\n-----END CERTIFICATE-----",
          "private_key": "-----BEGIN EC PRIVATE KEY-----\n*******\n-----END EC PRIVATE KEY-----",
          "enc_certificate": "-----BEGIN CERTIFICATE-----\n********\n-----END CERTIFICATE-----",
          "enc_private_key": "-----BEGIN EC PRIVATE KEY-----\n********\n-----END EC PRIVATE KEY-----",
          "certificate_chain": "-----BEGIN CERTIFICATE-----\n******\n-----END CERTIFICATE-----"
      }
  }
  ```
  
 
#### 响应消息
- 响应参数 返回状态码为 201: successful operation。
  表4响应Body参数列表 
  | 名称          | 类型                                                                                | 描述         |
  |:---|:---|:---|
  | certificate | [VpnGatewayCertificateConfig] object | VPN网关证书对象。 |
  | request_id  | String                                                                            | 请求ID。      |
     
   表5VpnGatewayCertificateConfig 
  | 名称                              | 类型     | 描述                                                                                                                                                                                                                                                                                                                                           |
  |:---|:---|:---|
  | id                              | String | - 功能说明：VPN网关证书ID。  - 格式：36位UUID。                                                           |
  | name                            | String | - 功能说明：VPN网关证书名称。  - 取值范围：3-63个字符、支持数字、英文字母、中文(\\u4e00 - \\u9fa5)、_(下划线)、-(中划线)。              |
  | vgw_id                          | String | - 功能说明：VPN网关ID。  - 格式：36位UUID。                                                                  |
  | issuer                          | String | - 功能说明：国密签名证书颁发者。  - 取值范围：1-256个字符。                                                         |
  | signature_algorithm             | String | - 功能说明：国密签名证书签名算法。    - 取值范围：1-64个字符。   |
  | certificate_serial_number       | String | - 功能说明：国密签名证书序列号。  - 取值范围：1-64个字符。                                                      |
  | certificate_subject             | String | - 功能说明：签名证书使用者。  - 取值范围：1-256个字符。                                                               |
  | certificate_expire_time         | String | - 功能说明：国密签名证书过期时间。                                                                                                                                                                             |
  | certificate_chain_serial_number | String | - 功能说明：CA证书序列号。  - 取值范围：1-64个字符。                                                           |
  | certificate_chain_subject       | String | - 功能说明：CA证书使用者。  - 取值范围：1-256个字符。                                                          |
  | certificate_chain_expire_time   | String | - 功能说明：CA证书过期时间。                                                                                                                                                                                 |
  | enc_certificate_serial_number   | String | - 功能说明：国密加密证书序列号。  - 取值范围：1-64个字符。                                                              |
  | enc_certificate_subject         | String | - 功能说明：加密证书使用者。  - 取值范围：1-256个字符。                                                            |
  | enc_certificate_expire_time     | String | - 功能说明：国密加密证书过期时间。                                                                                                                                                                            |
  | created_at                      | String | - 功能说明：创建时间。                                                                                                                                                                                     |
     
  
- 响应样例
  ```
  {
      "certificate": {
          "id": "73f072d8-demo-a8df-va86-2a755d95636f",
          "name": "cert-dce7",
          "vgw_id": "c7f1d3e3-0476-4a71-95a7-3ce8cbb969de",
          "issuer": "C=CN,ST=Beijing,L=HaiDian,O=GMCert.org,CN=GMCert GM Root CA - 01",
          "signature_algorithm": "SM3WITHSM2",
          "certificate_serial_number": "16548506527294397241",
          "certificate_subject": "C=CN,ST=beijing,L=beijing,O=huawei,OU=vpn,CN=hwcloud-vpn",
          "certificate_expire_time": "2024-02-20T15:41:39+08:00",
          "certificate_chain_serial_number": "12369133709000538078",
          "certificate_chain_subject": "C=CN,ST=Beijing,L=HaiDian,O=GMCert.org,CN=GMCert GM Root CA - 01",
          "certificate_chain_expire_time": "2039-07-11T20:31:33+08:00",
          "enc_certificate_serial_number": "16548506527294397242",
          "enc_certificate_subject": "C=CN,ST=beijing,L=beijing,O=huawei,OU=vpn,CN=hwcloud-vpn",
          "enc_certificate_expire_time": "2024-02-20T15:43:26+08:00",
          "created_at": "2023-03-30T10:47:16.657+08:00"
      }
  }
  ```
  
 
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-vpn/vpn_api_0052.html)。
