Modelli di certificato predefiniti

Certificate Authority Service fornisce modelli di certificato predefiniti per semplificare e proteggere il processo di emissione dei certificati. Offrendo set preconfigurati di parametri X.509 per casi d'uso comuni, questi modelli pronti all'uso semplificano la gestione dei certificati, riducono il rischio di errori umani e applicano le best practice di sicurezza. Ogni modello è progettato per un caso d'uso specifico per garantire che i certificati vengano emessi con i parametri corretti per lo scopo previsto, rispettando al contempo le limitazioni impostate dalla CA (Certificate Authority) emittente.

Questo documento è destinato ai gruppi di operatori di applicazioni, come sviluppatori di applicazioni o data scientist, che gestiscono i cicli di vita dei certificati all'interno del loro progetto. Per saperne di più, consulta Pubblico per la documentazione di GDC con air gap.

Applica un modello di certificato

Per applicare un modello, specifica il nome del modello nel campo certificateTemplate della risorsa CertificateRequest. CA Service applica i parametri del modello scelto al certificato emesso.

Per indicazioni dettagliate su come strutturare la risorsa CertificateRequest e includere il campo certificateTemplate, consulta Richiedi un certificato.

Tipi di modelli di certificato

Sono disponibili i seguenti modelli di certificato predefiniti. Ogni modello è progettato per un caso d'uso specifico e preconfigura i parametri X.509 applicati dal modello.

Nelle descrizioni dei modelli riportate di seguito, tutti i parametri non impostati esplicitamente dal modello vengono presi dalla risorsa CertificateRequest, indipendentemente dal fatto che siano forniti in una richiesta di firma del certificato (CSR) o nei campi definiti.

Predefinito

Nome modello: default

Questo modello viene utilizzato automaticamente se non specifichi un modello di certificato nella risorsa CertificateRequest. Il certificato emesso eredita le impostazioni Key usage e Extended key usage dal profilo della CA emittente e imposta Basic constraints su CA:FALSE, impedendo l'utilizzo del certificato per firmare altri certificati.

Parametro X509 Valore
RawSubject [SubjectOverride definito dall'utente o pass-through da CSR]
Limitazioni di base CA:FALSE
Nome alternativo del soggetto [Pass-through da CSR]
Utilizzo della chiave [Utilizzo della chiave impostato nella CA]
Utilizzo esteso della chiave [Utilizzo esteso della chiave impostato nella CA]

Certificati TLS client

Nome modello: endEntityClientAuthCertificate

Questo modello emette certificati di entità finale per l'autenticazione TLS lato client. Il certificato emesso imposta Extended key usage su TLS web client authentication e Basic constraints su CA:FALSE, impedendo l' utilizzo del certificato per firmare altri certificati.

Parametro X509 Valore
RawSubject [SubjectOverride definito dall'utente o pass-through da CSR]
Limitazioni di base CA:FALSE
Nome alternativo del soggetto [Pass-through da CSR]
Utilizzo della chiave Critico, firma digitale, crittografia della chiave
Utilizzo esteso della chiave Autenticazione client web TLS

Certificati TLS server

Nome modello: endEntityServerAuthCertificate

Questo modello emette certificati di entità finale per l'autenticazione TLS lato server, ideale per l'utilizzo con i server web. Il certificato emesso imposta Extended key usage su TLS web server authentication e Basic constraints su CA:FALSE, impedendo l'utilizzo del certificato per firmare altri certificati.

Parametro X509 Valore
RawSubject [SubjectOverride definito dall'utente o pass-through da CSR]
Limitazioni di base CA:FALSE
Nome alternativo del soggetto [Pass-through da CSR]
Utilizzo della chiave Critico, firma digitale, crittografia della chiave
Utilizzo esteso della chiave Autenticazione server web TLS

Certificati CA subordinati (PathLen 0)

Nome modello: blankSubCACertificate_PathLen0_CSRPassthrough

Questo modello emette certificati CA subordinati con un vincolo di lunghezza del percorso pari a 0, che consente al certificato di firmare i certificati di entità finale, ma non altri certificati CA.

Parametro X509 Valore
RawSubject [SubjectOverride definito dall'utente o pass-through da CSR]
Limitazioni di base CA:TRUE, pathlen: 0
Nome alternativo del soggetto [Pass-through da CSR]
Utilizzo della chiave [Utilizzo della chiave impostato in CSR]
Utilizzo esteso della chiave [Utilizzo esteso della chiave impostato in CSR]

Certificati CA subordinati (PathLen 1)

Nome modello: blankSubCACertificate_PathLen1_CSRPassthrough

Questo modello emette certificati CA subordinati con un vincolo di lunghezza del percorso pari a 1, che consente al certificato di firmare i certificati di entità finale e altri certificati CA subordinati con una lunghezza del percorso pari a 0.

Parametro X509 Valore
RawSubject [SubjectOverride definito dall'utente o pass-through da CSR]
Limitazioni di base CA:TRUE, pathlen: 1
Nome alternativo del soggetto [Pass-through da CSR]
Utilizzo della chiave [Utilizzo della chiave impostato in CSR]
Utilizzo esteso della chiave [Utilizzo esteso della chiave impostato in CSR]

Rilevamento dei conflitti

Ogni CA ha un profilo che definisce i tipi di certificati che è autorizzata a emettere. Ad esempio, una CA potrebbe essere limitata all'emissione di certificati di autenticazione client. Il profilo della CA viene configurato nella sezione certificateProfile della risorsa CertificateAuthority al momento della creazione della CA, come descritto in Creare un'autorità di certificazione radice e Creare una CA subordinata.

Quando richiedi un certificato utilizzando un modello predefinito, CA Service convalida i parametri del modello in base alla configurazione della CA emittente. Per essere validi, i parametri X.509 definiti nel modello scelto devono essere un sottoinsieme di quelli consentiti dalla CA emittente in base al relativo certificateProfile. Si verifica un conflitto se il modello richiede attributi o autorizzazioni che la CA non è autorizzata a concedere. Ad esempio, un modello non può richiedere un Extended key usage (EKU) di serverAuth se la CA emittente è autorizzata a concedere solo clientAuth.

Se CA Service rileva un conflitto di questo tipo, la CertificateRequest non riesce. Puoi esaminare lo stato della risorsa CertificateRequest per comprendere il motivo dell'errore.

Esempio

Nello scenario seguente, una CA denominata client-certs-ca è configurata per emettere certificati solo per l'autenticazione client. Il relativo certificateProfile specifica che l'unico Extended key usage consentito è TLS web client authentication.

Invia la seguente CertificateRequest per emettere un certificato per un server, utilizzando il modello endEntityServerAuthCertificate:

  apiVersion: pki.security.gdc.goog/v1
  kind: CertificateRequest
  metadata:
    name: server-cert-req
    namespace: my-project
  spec:
    certificateAuthorityRef:
      name: client-certs-ca
      namespace: my-project
    csr: "..."
    certificateTemplate: endEntityServerAuthCertificate
    signedCertificateSecret: server-cert-secret

Questa richiesta non riesce per i seguenti motivi:

  • Il modello endEntityServerAuthCertificate richiede l'EKU TLS web server authentication.
  • La CA emittente, client-certs-ca, ha un certificateProfile che consente solo l'EKU TLS web client authentication.

Poiché l'EKU richiesto dal modello non è incluso nell'elenco degli EKU consentiti dal profilo della CA, i requisiti del modello non sono un sottoinsieme dei parametri consentiti della CA. Di conseguenza, la richiesta viene rifiutata.