--- title: "Create CA" slug: "security-privateca-createca" tags: ["Private CA"] updated: 2026-10-08T04:21:20Z published: 2026-10-08T04:21:20Z canonical: "api.ncloud-docs.com/security-privateca-createca" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Create CA Available in Classic and VPC Create a private CA (root CA, intermediate CA) to issue certificates. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/ca | ### Request headers For information about the request headers common to all Private CA APIs, see [Private CA request headers](/docs/en/security-privateca#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request query parameters You can use the following query parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `issuerTag` | String | Optional | Parent CA tag value | | `caType` | String | Required | Type of CA to create - `PRIVATE_ROOT` \| `PRIVATE_SUB` - `PRIVATE_ROOT`: Root CA - `PRIVATE_SUB`: Intermediate CA | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `alias` | String | Required | CA name - Enter 3-15 characters, including English letters, numbers, and special character "-" and "_". - The string must start with an English letter. | | `memo` | String | Optional | CA memo | | `keyType` | String | Required | Key type - `RSA2048` \| `RSA4096` \| `EC256` \| `EC521` | | `period` | String | Required | Validity period (days) - 1-3650 - Enter `MAX` to set it to the maximum allowable validity period. | | `x509Parameters` | Object | Required | Advanced settings information | | `x509Parameters.commonName` | String | Required | General name - 1-64 characters | | `x509Parameters.altName` | String | Optional | DNS/email SANs - Enter domain/host name or email format. | | `x509Parameters.ip` | String | Optional | IP SANs - Enter in the IP address format. | | `x509Parameters.country` | String | Optional | Standard country code - See [ISO 3166-1 alpha-2](https://ko.wikipedia.org/wiki/ISO_3166-1_alpha-2). | | `x509Parameters.locality` | String | Optional | City name - 0-128 characters - Example: `Seoul` | | `x509Parameters.stateProvince` | String | Optional | State/province or region name - 0-128 characters - Example: `Gyeonggi-do` | | `x509Parameters.organization` | String | Optional | Organization name - 0-64 characters | | `x509Parameters.organizationUnit` | String | Optional | Department name - 0-128 characters | ### Request example The request example is as follows: ``` curl --location --request POST 'https://pca.apigw.ntruss.com/api/v1/ca?caType=PRIVATE_ROOT' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '{ "alias": "CA002", "keyType": "RSA2048", "period": "MAX", "x509Parameters": { "commonName": "name000", "country": "KOR", "organization": "org000", "organizationUnit": "org001", "locality": "Pangyo", "stateProvince": "Seongnam-si" } }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `code` | String | - | Response code | | `msg` | String | - | Response message | | `data` | Object | - | Response result | | `data.caInfo` | Object | - | CA information | | `data.caInfo.signingCount` | Number | - | No. of certificates signed by CA | | `data.caInfo.caType` | String | - | CA type - `PRIVATE_ROOT` \| `PRIVATE_SUB` | | `data.caInfo.caId` | Number | - | CA identifier | | `data.caInfo.statusUpdateDate` | String | - | Latest status change date and time - Timestamp format | | `data.destroyDate` | String | - | Deletion date and time - Timestamp format | | `data.caInfo.alias` | String | - | CA name | | `data.caInfo.memo` | String | - | CA memo | | `data.caInfo.urlInfo` | Object | - | URL information | | `data.caInfo.urlInfo.ocsp` | Array | - | Online Certificate Status Protocol (OCSP) URL | | `data.caInfo.urlInfo.crl` | Array | - | Certificate revocation list (CRL) URL | | `data.caInfo.urlInfo.ca` | Array | - | CA URL | | `data.caTag` | String | - | CA's tag value | | `data.rgstDate` | Number | - | Registration date and time - Timestamp format | | `data.status` | String | - | CA status - `ACTIVE` \| `DEACTIVATED` \| `DESTROYING` - `ACTIVE`: Enabled - `DEACTIVATED`: Disabled - `DESTROYING`: Scheduled for deletion | | `data.caCertInfo` | Object | - | CA certificate information | | `data.caCertInfo.commonName` | String | - | Common name | | `data.caCertInfo.country` | String | - | Standard country code - See [ISO 3166-1 alpha-2](https://ko.wikipedia.org/wiki/ISO_3166-1_alpha-2). | | `data.caCertInfo.issueName` | String | - | Issued CA name | | `data.caCertInfo.notAfterDate` | Long | - | Certification expiration date and time - Timestamp format | | `data.caCertInfo.publicKeyAlgorithm` | String | - | Encryption algorithm | | `data.caCertInfo.notBeforeDate` | Long | - | Certification validity start date and time - Timestamp format | | `data.caCertInfo.locality` | String | - | City name | | `data.caCertInfo.stateProvince` | String | - | State/province or region name | | `data.caCertInfo.organizationUnit` | String | - | Department name | | `data.caCertInfo.certPem` | String | - | CA certificate (PEM) | | `data.caCertInfo.chainPem` | String | - | Certificate chain (PEM) | | `data.caCertInfo.signatureAlgorithm` | String | - | Signature algorithm | | `data.caCertInfo.serialNo` | String | - | Certificate serial number | | `data.caCertInfo.caCertId` | Long | - | Certification identifier | | `data.caCertInfo.organization` | String | - | Organization name | ### Response status codes For information about the response status codes common to all Private CA APIs, see [Private CA response status codes](/docs/en/security-privateca#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "code": "SUCCESS", "msg": "Success", "data": { "caInfo": { "signingCount": 0, "caType": "PRIVATE_ROOT", "caId": 17***, "statusUpdateDate": null, "destroyDate": null, "alias": "CA002", "memo": "", "urlInfo": { "ocsp": [], "crl": [ "https://pca.apigw.ntruss.com/ext/********-********/crl" ], "ca": [ "https://pca.apigw.ntruss.com/ext/********-********/ca" ] }, "caTag": "********-********", "rgstDate": 1721175807574, "status": "ACTIVE" }, "caCertInfo": { "commonName": "name000", "country": "KOR", "issuerName": "name000", "notAfterDate": 2036535807000, "publicKeyAlgorithm": "RSA", "notBeforeDate": 1721175777000, "locality": "Pangyo", "stateProvince": "Seongnam-si", "organizationUnit": "org001", "certPem": "-----BEGIN CERTIFICATE-----\n{Certificate}\n-----END CERTIFICATE-----", "chainPem": "-----BEGIN CERTIFICATE-----\n{CA Chain}\n-----END CERTIFICATE-----", "signatureAlgorithm": "SHA256withRSA", "serialNo": "**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**", "caCertId": 17***, "organization": "org000" } } } ```