Bulk Certificate Sign
POST /puppet-ca/v1/sign
The sign
endpoint of the CA API allows you to request the signing of CSRs
that match the certnames included in the payload.
The certnames must be in an array nested under a certnames
key and be valid certnames.
The usual checks for subject-alt-names allowed, authorization-extensions allowed, invalid extensions
and valid signature are made.
POST /puppet-ca/v1/sign
Content-Type: application/json
{
"certnames": [
"one.example.com",
"two.example.com"
]
}
Supported HTTP Methods
POST
Supported Response Formats
application/json
Parameters
None
Responses
Certificates signed
POST /puppet-ca/v1/sign
{
"certnames": [
"one.example.com",
"two.example.com"
]
}
HTTP 200 OK
Content-Type: application/json
{
"signed": [
"one.example.com",
"two.example.com"
],
"no-csr": [],
"signing-errors": []
}
Certname schema error
POST /puppet-ca/v1/sign
Content-Type: application/json
{
"certnames": [
1,
2
]
}
HTTP 422 Unprocessable Entity
{
"kind": "schema-violation",
"msg": ""
"details": {},
}
No CSRs for supplied certnames
POST /puppet-ca/v1/sign
Content-Type: application/json
{
"certnames": [
"nocsrone.example.com",
"nocsrtwo.example.com"
]
}
HTTP 200 OK
Content-Type: application/json
{
"signed": [],
"no-csr": [
"nocsrone.example.com",
"nocsrtwo.example.com"
],
"signing-errors": []
}
Signing errors for supplied certnames
POST /puppet-ca/v1/sign
Content-Type: application/json
{
"certnames": [
"badextension.example.com",
"invalidsignature.example.com"
]
}
HTTP 200 OK
Content-Type: application/json
{
"signed": [],
"no-csr": [],
"signing-errors": [
"badextension.example.com",
"invalidsignature.example.com"
]
}
POST /puppet-ca/v1/sign/all
The sign/all
endpoint of the CA API allows you to request the signing of all outstanding CSRs.
POST /puppet-ca/v1/sign/all
Content-Type: application/json
{}
Supported HTTP Methods
POST
Supported Response Formats
application/json
Parameters
None
Responses
POST /puppet-ca/v1/sign/all
Content-Type: application/json
{}
HTTP 200 OK
Content-Type: application/json
{
"signed": [
"one.example.com",
"two.example.com"
],
"no-csr": [],
"signing-errors": [
"badextension.example.com",
"invalidsignature.example.com"
]
}