Skip to content

Certificate profiles

A certificate profile is what a requester chooses when asking for a certificate, and what an ACME, EST, SCEP or CMP client is pointed at. It binds one certificate authority and one of its templates, and adds PKIFactor's rules: allowed algorithms, subject fields, allowed names, approval, organization, notifications, enrollment protocols. (In the API and the code, profiles are called CLM templates.)

Profiles are managed by administrators in the Administration workspace, Infrastructure > Certificate Profiles. The list shows, for each profile, its CA (PKI), its Certificate Template, the enabled Enrollment protocols and whether it is Hybrid or Standard, with Details, Edit and Delete.

Certificate Profiles

Profile and CA template: two levels

Level Where Decides
CA template On the CA (Vault role, AD CS template, EJBCA certificate profile, public CA product), synchronized or created on the connector's Certificate Templates page What the CA accepts and puts in the certificate: usages, key constraints, maximum lifetime. The validity requested from the CA is set here (connector menu > Certificate Profiles > Edit)
Profile Certificate Profiles Who may request, which names and algorithms, which subject, approval, protocols

A profile can never obtain more than its CA template allows: the CA has the last word. See Certificate authorities.

Create a profile

Certificate Profiles > New Profile. The form is the same for every CA; only the CA block changes.

CA binding

Field Notes
PKI Connector The CA. The last entry of the list, Crypto-agility (several authorities), creates a profile that issues several independent certificates at once: see Crypto-agility and PQC
Certificate Template One of the connector's templates. If the list is empty, synchronize the connector first. A template that belongs to another connector is refused
Public CA block DigiCert: Product Type, DCV Method (DNS CNAME, DNS TXT, HTTP, Email). Sectigo: Product ID, DCV Method (CNAME, HTTP, EMAIL). Plus Validation type (Domain Validated, Organization Validated, Extended Validation), Domain validation (Automatic — DCV via DNS provider or Manual — I validate the domain myself) and the DNS provider (optional; by default deduced from the domain zone). A DNS-based DCV method needs a DNS provider. See Public CAs and domain validation

Basic information and organization

Field Notes
Internal Name Unique identifier, lowercase, no spaces. It is also the basis of the protocol paths
Display Name, Description What requesters see
Owning organization One organization, Several organizations or All organizations. Every certificate issued from the profile belongs to an organization; it decides who approves it and which operators may act on it. With several or all organizations, the certificate goes to the requester's organization (chosen by the requester when there is more than one). See Organizations and teams

A profile enabled for ACME, EST, SCEP or CMP must belong to one organization: a gateway cannot choose ("Un profil activé pour ACME, EST, SCEP ou CMP doit être rattaché à une seule organisation : une passerelle ne peut pas choisir.").

Allowed algorithms

Tick the key algorithms the profile accepts; the list comes from the CA template. The rule is enforced on every channel, protocols included, at issuance and at renewal, and the CSR is authoritative: the algorithm of the actual key in the CSR is checked, whatever the request declares. A CSR whose key is not allowed is refused ("Algorithme de clé « … » non autorisé pour ce profil (autorisés : …)").

The algorithms actually usable are those of the profile, minus those the CA cannot sign and those removed by a blocking issuance policy that depends only on the algorithm. The first usable algorithm is the default when PKIFactor generates the key; at renewal, the algorithm of the previous certificate is kept as long as it is still allowed.

An empty list does not mean "anything": it allows the classical algorithms only, RSA-2048, RSA-3072, RSA-4096, ECC-P256, ECC-P384, ECC-P521. Every other key type (Ed25519, other curves, RSA below 2048 bits, post-quantum, composite) must be ticked explicitly. Post-quantum (ML-DSA-*) and composite (COMP-*) algorithms appear only when the CA template offers them, and a composite algorithm only on a CA that can sign composite requests. See Crypto-agility and PQC.

Hybrid / Post-Quantum

Shown when the CA template offers post-quantum algorithms. Enable Hybrid/PQC Mode, then choose a Hybrid Strategy (Dual Certificate (RFC 9763), Hybrid (AltSignatureValue), PQC Only) and the Post-Quantum Algorithms. The effect of each strategy, and why Dual Certificate is replaced by crypto-agile profiles, is described in Crypto-agility and PQC.

Key generation mode

Generate key pair (PKIFactor generates the key and delivers it in a PKCS#12) and/or Provide CSR (the requester keeps the key); Recommended mode is the one pre-selected in the request form.

X.509 subject fields

For each field (CN, SAN, O, OU, C, ST, L, E): Editable, Required, and a Value.

Editable Required Behaviour
Yes Yes The requester must fill it in; the value pre-fills the form
Yes No The requester may fill it in; the value is the default
No (a value is set) Fixed value imposed by the profile
No (no value) The field must stay empty: a request or CSR that carries it is refused

With a CSR, the subject cannot be rewritten: PKIFactor checks it instead. A CSR whose fixed field differs from the profile, or that lacks a required field, is refused. SAN entries are required only when the SAN field is marked required.

Allowed names (CN Domain Filter)

Enable CN domain validation and list the Allowed domains, comma-separated. When enabled, the CN and every SAN, including the names found in a CSR, must match; this applies to the web interface, the API and all protocols, at issuance and at renewal.

Entry Matches
example.com Exactly example.com
*.example.com www.example.com (one level only) and example.com; not a.b.example.com

Contextual rules across profiles (block wildcards in production, for example) belong to Issuance policies.

Approval

Require validation before issuance sends interactive requests to the approval queue of the certificate's organization. The box is cleared and disabled as soon as ACME, EST, CMP or SCEP is enabled on the profile, and the server refuses a profile that combines manual approval with one of these protocols (for example "ACME enabled is incompatible with manual approval (challenge replaces human validation)"): the protocol's own proof (challenge, client authentication, protected message, single-use challenge) replaces the human check. That exemption applies only to requests that actually arrive through the protocol. Issuance policies can still require approval for interactive requests. Details in Approvals.

E-mail notifications

Field Notes
Team address for automated certificates (ACME, EST, SCEP, CMP) Used only for certificates issued through a protocol, with no human requester, and as a last resort for alerts. For a request made in the portal, the requester's team is notified: the address is entered on the request, prefilled with the requester's team
Notification Language English, Français, Español, Português
Send notifications when: New certificate request, Certificate is issued, Certificate is about to expire, Certificate is revoked (all ticked by default). The edit form shows the last three only

See E-mail and notifications.

Custom fields

Add Custom Field adds request fields (for example a business unit), each Editable and/or Required.

Automatic enrollment (ACME, EST, CMP, SCEP)

Each protocol is enabled per profile; PKIFactor then generates a unique path from the internal name and shows it (Current ACME Path, and so on). Disabling a protocol clears its path.

Protocol Settings
ACME Challenge Types (HTTP-01, DNS-01, TLS-ALPN-01), Require External Account Binding (EAB)
EST Authentication Method: TLS client certificate (recommended), HTTP Basic, or both
CMP Protection modes (signature, shared secret), Allowed deployment modes (end entity direct, local RA, trusted RA), Transports (HTTP, CoAP), PBM shared secret (MAC): stored encrypted; leave it blank when editing to keep the current secret
SCEP Require challenge (strongly recommended), Challenge TTL (seconds): 900 by default, between 60 and 86400; each challenge is single-use

ACME needs at least one challenge type: a profile with ACME enabled and no challenge is refused.

Profile details and enrollment kits

Details opens the read-only view of the profile: CA mapping, key algorithms, subject and business fields, CN filter, hybrid settings, and for each enabled protocol its path and endpoint. From there an administrator can generate ready-to-use material:

Button Result
Enroll a server (ACME kit) Ready-to-paste commands (certbot, acme.sh, win-acme) for a chosen Platform (nginx, Apache, HAProxy, IIS, other Linux server), with the Server contact (alerts), the Domain names and the Challenge; optionally an EAB credential (required when the profile requires EAB). The EAB HMAC key is shown only once
Enroll (EST) An enrollment credential scoped to this profile (username and secret, shown only once) and the simpleenroll command; the existing credentials are listed
Enroll (SCEP) A single-use challengePassword (shown only once) and an sscep command

Client-side configuration is in ACME server, EST, SCEP and CMP.

Via the API

curl -s -b jar https://clm.example.com/api/v1/clm/templates            # all profiles (administrators)
curl -s -b jar https://clm.example.com/api/v1/clm/templates/available  # what the current user may request
curl -s -b jar -X POST https://clm.example.com/api/v1/clm/templates \
  -H "Content-Type: application/json" \
  -d '{"name":"srv-tls","display_name":"Server TLS","organization_id":2,
       "pki_id":3,"pki_template_id":12,"mapped_pki_template_id":12,
       "allowed_key_algorithms":["RSA-2048","ECC-P256"],
       "cn_filter_enabled":true,"cn_allowed_domains":"*.example.com",
       "requires_approval":true}'
pki_template_id is the identifier of the CA template (from GET /api/v1/templates/pki/{pki_id}). Creation, change and deletion are recorded in the audit trail (ADMIN_CREATE_CLM_TEMPLATE, ADMIN_UPDATE_CLM_TEMPLATE, ADMIN_DELETE_CLM_TEMPLATE).

Edit a profile

Open the profile and Edit. Every rule can be changed; changes apply to new requests only, never to certificates already issued. Each protocol section shows its current path (Current ACME Path, Current EST Path, Current CMP Path, Current SCEP Path).

The CA binding (connector and CA template) is read-only in the interface. To move one or more profiles to another CA, use the CA switch of the API: the preview lists the live certificates that depend on the profiles, those deployed on a device, and when each one will actually change CA (at its next renewal, since an issued certificate keeps its chain). Distribute the new CA's root to the relying parties before that date.

Via the API: change of CA

curl -s -b jar -X POST https://clm.example.com/api/v1/clm/templates/ca-switch/preview \
  -H "Content-Type: application/json" -d '{"template_ids":[4,5],"new_pki_id":8,"new_pki_template_id":31}'
curl -s -b jar -X POST https://clm.example.com/api/v1/clm/templates/ca-switch \
  -H "Content-Type: application/json" -d '{"template_ids":[4,5],"new_pki_id":8,"new_pki_template_id":31}'
The switch is one audited operation; a CA template that does not belong to the new CA is refused.

Deactivate or delete a profile

Prefer deactivation. An inactive profile disappears from the request form and blocks new requests; existing certificates keep their link to the profile. The edit page shows the Status (Active or Inactive) but does not change it: deactivate through the API, with PUT /api/v1/clm/templates/{id} and {"is_active": false}.

Delete Profile is permanent and is not blocked when certificates still refer to the profile:

  • certificates issued from it stay in the inventory but lose their profile, and can no longer be renewed (renewal answers "CLM template not found");
  • EST enrollment credentials of the profile are deleted;
  • protocol clients pointed at its paths stop working.

The CA template has its own protection: it cannot be deleted while a profile uses it (this used to unlink profiles silently; fixed in 1.6.31, which also added template editing).

Troubleshooting

Symptom Cause and fix
Certificate Template list empty The connector has no templates: Sync From PKI, or Create Manually on the connector's Certificate Templates page
Profile saved, but issuance fails with a CA error about the template name The template name differs from the name on the CA (manual templates must match exactly)
"Algorithme de clé « … » non autorisé pour ce profil (autorisés : …)" The key of the CSR, or the chosen algorithm, is not among the usable algorithms (profile, CA, issuance policies). With an empty list, only classical algorithms are allowed
"…aucun algorithme n'est utilisable avec ce profil…" The profile, its CA and the issuance policies leave no algorithm in common
"Le nom demandé '…' (CN/SAN) ne correspond à aucun domaine autorisé pour ce profil" A CN or SAN is outside Allowed domains (remember that *.example.com covers one level only)
Request refused because of a subject field A field marked non-editable without a value was filled in, or a fixed value differs in the CSR
Issued certificate has a different lifetime than expected The CA applied its own template or role limit; fix the validity on the CA side or on the CA template
Saving refused: "… enabled is incompatible with manual approval …" Untick Require validation before issuance, or disable the protocol
Saving refused: single organization required ACME, EST, SCEP or CMP is enabled on a profile shared by several or all organizations
Old certificates cannot be renewed Their profile was deleted; reissue them from an existing profile