Skip to content
Start here

Create Custom CSR

client.CustomCsrs.New(ctx, params) (*CustomCsrNewResponse, error)
POST/{accounts_or_zones}/{account_or_zone_id}/custom_csrs

Generate a new custom Certificate Signing Request (CSR) for an account or zone. Cloudflare generates and securely stores the private key associated with the CSR.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Account: SSL and Certificates Write
ParametersExpand Collapse
params CustomCsrNewParams
CommonName param.Field[string]

Body param: The common name (domain) for the CSR. Must be at most 64 characters.

maxLength64
Country param.Field[string]

Body param: Two-letter ISO 3166-1 alpha-2 country code.

Locality param.Field[string]

Body param: City or locality name.

Organization param.Field[string]

Body param: Organization name.

Sans param.Field[[]string]

Body param: Subject Alternative Names for the CSR. At least one SAN is required.

State param.Field[string]

Body param: State or province name.

AccountID param.Field[string]Optional

Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.

ZoneID param.Field[string]Optional

Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.

Description param.Field[string]Optional

Body param: Optional description for the CSR.

KeyType param.Field[CustomCsrNewParamsKeyType]Optional

Body param: Key algorithm to use for the CSR. Defaults to rsa2048 if not specified.

const CustomCsrNewParamsKeyTypeRsa2048 CustomCsrNewParamsKeyType = "rsa2048"
const CustomCsrNewParamsKeyTypeP256v1 CustomCsrNewParamsKeyType = "p256v1"
Name param.Field[string]Optional

Body param: Human-readable name for the CSR.

OrganizationalUnit param.Field[string]Optional

Body param: Organizational unit name.

ReturnsExpand Collapse
type CustomCsrNewResponse struct{…}

A custom Certificate Signing Request (CSR).

ID string

Custom CSR identifier tag.

maxLength36
CreatedAt Time

When the CSR was created.

formatdate-time
KeyType CustomCsrNewResponseKeyType

The key algorithm used to generate the CSR.

One of the following:
const CustomCsrNewResponseKeyTypeRsa2048 CustomCsrNewResponseKeyType = "rsa2048"
const CustomCsrNewResponseKeyTypeP256v1 CustomCsrNewResponseKeyType = "p256v1"
AccountTag stringOptional

Account identifier associated with this CSR.

CommonName stringOptional

The common name (domain) for the CSR.

maxLength64
Country stringOptional

Two-letter ISO 3166-1 alpha-2 country code.

Csr stringOptional

The PEM-encoded Certificate Signing Request.

Description stringOptional

Optional description for the CSR.

Locality stringOptional

City or locality name.

Name stringOptional

Human-readable name for the CSR.

Organization stringOptional

Organization name.

OrganizationalUnit stringOptional

Organizational unit name.

Sans []stringOptional

Subject Alternative Names included in the CSR.

State stringOptional

State or province name.

Create Custom CSR

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/custom_csrs"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  customCsr, err := client.CustomCsrs.New(context.TODO(), custom_csrs.CustomCsrNewParams{
    CommonName: cloudflare.F("example.com"),
    Country: cloudflare.F("US"),
    Locality: cloudflare.F("San Francisco"),
    Organization: cloudflare.F("Cloudflare, Inc."),
    Sans: cloudflare.F([]string{"example.com", "www.example.com"}),
    State: cloudflare.F("California"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", customCsr.ID)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
    "created_at": "2024-01-15T10:30:00Z",
    "key_type": "rsa2048",
    "account_tag": "23e087bd19bc1d40ae95b6f297263ceb",
    "common_name": "example.com",
    "country": "US",
    "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICYzCCAUsCAQAwHj...",
    "description": "CSR for example.com wildcard",
    "locality": "San Francisco",
    "name": "My Custom CSR",
    "organization": "Cloudflare, Inc.",
    "organizational_unit": "Engineering",
    "sans": [
      "example.com",
      "www.example.com"
    ],
    "state": "California"
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
    "created_at": "2024-01-15T10:30:00Z",
    "key_type": "rsa2048",
    "account_tag": "23e087bd19bc1d40ae95b6f297263ceb",
    "common_name": "example.com",
    "country": "US",
    "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICYzCCAUsCAQAwHj...",
    "description": "CSR for example.com wildcard",
    "locality": "San Francisco",
    "name": "My Custom CSR",
    "organization": "Cloudflare, Inc.",
    "organizational_unit": "Engineering",
    "sans": [
      "example.com",
      "www.example.com"
    ],
    "state": "California"
  }
}