> ## Documentation Index
> Fetch the complete documentation index at: https://infisical.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create signer

> Create a code signing signer



## OpenAPI

````yaml POST /api/v1/cert-manager/signers
openapi: 3.0.3
info:
  title: Infisical API
  description: List of all available APIs that can be consumed
  version: 0.0.1
servers:
  - url: https://us.infisical.com
    description: Production server (US)
  - url: https://eu.infisical.com
    description: Production server (EU)
  - url: http://localhost:8080
    description: Local server
security: []
paths:
  /api/v1/cert-manager/signers:
    post:
      tags:
        - PKI Signers
      description: Create a code signing signer
      operationId: createSigner
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                description:
                  type: string
                  maxLength: 256
                caId:
                  type: string
                  format: uuid
                commonName:
                  type: string
                  minLength: 1
                  maxLength: 256
                certificateTtlDays:
                  type: integer
                  minimum: 1
                  maximum: 3650
                certificateRenewBeforeDays:
                  type: integer
                  minimum: 1
                  maximum: 30
                  nullable: true
                keyAlgorithm:
                  type: string
                  enum:
                    - RSA_2048
                    - RSA_3072
                    - RSA_4096
                    - EC_prime256v1
                    - EC_secp384r1
                    - EC_secp521r1
                certificateId:
                  type: string
                  format: uuid
                certificate:
                  type: object
                  properties:
                    keySource:
                      type: string
                      enum:
                        - infisical
                        - hsm
                      default: infisical
                    hsmConnectorId:
                      type: string
                      format: uuid
                    hsmKeyLabel:
                      type: string
                      minLength: 1
                      maxLength: 128
                      description: >-
                        The label of the certificate's private key on the HSM.
                        Only used when using an existing DigiCert certificate.
                        If more than one private key in the HSM Connector's slot
                        has this label, also set hsmKeyId.
                    hsmKeyId:
                      type: string
                      minLength: 2
                      maxLength: 256
                      pattern: ^(?:[0-9a-fA-F]{2})+$
                      description: >-
                        The hex-encoded PKCS#11 key ID (CKA_ID) of the private
                        key, used to tell apart keys that share a label. Only
                        used with hsmKeyLabel.
                  additionalProperties: false
                externalConfiguration:
                  type: object
                  properties:
                    caType:
                      type: string
                      enum:
                        - digicert
                        - adcs
                      description: >-
                        Optional. The CA type is resolved from caId. If
                        provided, it must match the type of that certificate
                        authority.
                    reissueFromExternalOrderId:
                      type: string
                      minLength: 1
                      maxLength: 32
                      description: >-
                        DigiCert only. Reissue into this existing DigiCert order
                        instead of placing a new order (reuses the subscription
                        slot). DigiCert revokes the order's previous
                        certificate.
                    importFromExternalOrderId:
                      type: string
                      minLength: 1
                      maxLength: 32
                      description: >-
                        DigiCert only. Use the certificate already issued in
                        this DigiCert order, without reissuing it. Requires
                        certificate.hsmKeyLabel to point at the certificate's
                        private key on the HSM. The common name, validity and
                        key algorithm come from that certificate, so commonName,
                        certificateTtlDays and keyAlgorithm can't be sent with
                        it.
                    template:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: >-
                        Active Directory Certificate Service only. The
                        certificate template this signer requests when issuing
                        (e.g. a code-signing template).
                  additionalProperties: false
                approvalPolicyId:
                  type: string
                  format: uuid
                members:
                  type: array
                  items:
                    type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - user
                          - identity
                          - group
                      id:
                        type: string
                        format: uuid
                      role:
                        type: string
                        minLength: 1
                    required:
                      - kind
                      - id
                      - role
                    additionalProperties: false
                approvalPolicy:
                  type: object
                  properties:
                    steps:
                      type: array
                      items:
                        type: object
                        properties:
                          stepNumber:
                            type: integer
                            minimum: 1
                          name:
                            type: string
                            maxLength: 64
                            nullable: true
                          requiredApprovals:
                            type: integer
                            minimum: 1
                          approverUserIds:
                            type: array
                            items:
                              type: string
                              format: uuid
                            default: []
                          approverGroupIds:
                            type: array
                            items:
                              type: string
                              format: uuid
                            default: []
                        required:
                          - stepNumber
                          - requiredApprovals
                        additionalProperties: false
                    constraints:
                      type: object
                      properties:
                        maxSignings:
                          type: integer
                          minimum: 1
                          nullable: true
                        maxWindowDuration:
                          type: string
                          nullable: true
                      additionalProperties: false
                  required:
                    - steps
                  additionalProperties: false
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  status:
                    type: string
                    default: active
                  certificateId:
                    type: string
                    format: uuid
                    nullable: true
                  approvalPolicyId:
                    type: string
                    format: uuid
                    nullable: true
                  lastSignedAt:
                    type: string
                    format: date-time
                    nullable: true
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  caId:
                    type: string
                    format: uuid
                    nullable: true
                  commonName:
                    type: string
                    nullable: true
                  certificateTtlDays:
                    type: number
                    nullable: true
                  certificateRenewBeforeDays:
                    type: number
                    nullable: true
                  certificateFailureReason:
                    type: string
                    nullable: true
                  keyAlgorithm:
                    type: string
                    default: RSA_2048
                  externalCaConfig:
                    nullable: true
                required:
                  - id
                  - name
                  - createdAt
                  - updatedAt
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 400
                  message:
                    type: string
                  error:
                    type: string
                  details: {}
                required:
                  - reqId
                  - statusCode
                  - message
                  - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 401
                  message:
                    type: string
                  error:
                    type: string
                required:
                  - reqId
                  - statusCode
                  - message
                  - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 403
                  message:
                    type: string
                  details: {}
                  error:
                    type: string
                required:
                  - reqId
                  - statusCode
                  - message
                  - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 404
                  message:
                    type: string
                  error:
                    type: string
                required:
                  - reqId
                  - statusCode
                  - message
                  - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 422
                  message: {}
                  error:
                    type: string
                required:
                  - reqId
                  - statusCode
                  - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  reqId:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 500
                  message:
                    type: string
                  error:
                    type: string
                required:
                  - reqId
                  - statusCode
                  - message
                  - error
                additionalProperties: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.