Modelos de certificado predefinidos

O Certificate Authority Service oferece modelos de certificado predefinidos para ajudar a simplificar e proteger o processo de emissão de certificados. Ao oferecer conjuntos pré-configurados de parâmetros X.509 para casos de uso comuns, esses modelos prontos simplificam o gerenciamento de certificados, reduzem o risco de erro humano e aplicam as práticas recomendadas de segurança. Cada modelo é projetado para um caso de uso específico para garantir que os certificados sejam emitidos com os parâmetros corretos para a finalidade pretendida, respeitando também as limitações definidas pela autoridade de certificação (CA) emissora.

Este documento é destinado a públicos-alvo do grupo de operadores de aplicativos, como desenvolvedores de aplicativos ou cientistas de dados, que gerenciam ciclos de vida de certificados no projeto. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Aplicar um modelo de certificado

Para aplicar um modelo, especifique o nome dele no campo certificateTemplate do recurso CertificateRequest. O Serviço de CA aplica os parâmetros do modelo escolhido ao certificado emitido.

Para orientações detalhadas sobre como estruturar o CertificateRequest recurso e incluir o certificateTemplate campo, consulte Solicitar um certificado.

Tipos de modelo de certificado

Os seguintes modelos de certificado predefinidos estão disponíveis. Cada modelo é projetado para um caso de uso específico e pré-configura os parâmetros X.509 que o modelo aplica.

Nas descrições de modelo abaixo, todos os parâmetros não definidos explicitamente pelo modelo são extraídos do recurso CertificateRequest, sejam eles fornecidos em uma solicitação de assinatura de certificado (CSR) ou campos definidos por você.

Padrão

Nome do modelo: default

Esse modelo é usado automaticamente se você não especificar um modelo de certificado no recurso CertificateRequest. O certificado emitido herda as configurações de Key usage e Extended key usage do perfil da CA emissora e define Basic constraints como CA:FALSE, impedindo que o certificado seja usado para assinar outros certificados.

Parâmetro X509 Valor
RawSubject [SubjectOverride definido pelo usuário ou transmissão da CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transmissão da CSR]
Uso da chave [Uso da chave definido na CA]
Uso estendido de chave [Uso estendido de chave definido na CA]

Certificados TLS do cliente

Nome do modelo: endEntityClientAuthCertificate

Esse modelo emite certificados de entidade final para autenticação TLS do lado do cliente. O certificado emitido define Extended key usage como TLS web client authentication e Basic constraints como CA:FALSE, impedindo que o certificado seja usado para assinar outros certificados.

Parâmetro X509 Valor
RawSubject [SubjectOverride definido pelo usuário ou transmissão da CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transmissão da CSR]
Uso da chave Crítico, assinatura digital, criptografia de chave
Uso estendido de chave Autenticação do cliente da Web TLS

Certificados TLS do servidor

Nome do modelo: endEntityServerAuthCertificate

Esse modelo emite certificados de entidade final para autenticação TLS do lado do servidor, o que é ideal para uso com servidores da Web. O certificado emitido define Extended key usage como TLS web server authentication, e Basic constraints como CA:FALSE, impedindo que o certificado seja usado para assinar outros certificados.

Parâmetro X509 Valor
RawSubject [SubjectOverride definido pelo usuário ou transmissão da CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transmissão da CSR]
Uso da chave Crítico, assinatura digital, criptografia de chave
Uso estendido de chave Autenticação do servidor da Web TLS

Certificados de CA subordinada (PathLen 0)

Nome do modelo: blankSubCACertificate_PathLen0_CSRPassthrough

Esse modelo emite certificados de CA subordinada com uma restrição de comprimento de caminho de 0, o que permite que o certificado assine certificados de entidade final, mas não outros certificados de CA.

Parâmetro X509 Valor
RawSubject [SubjectOverride definido pelo usuário ou transmissão da CSR]
Restrições básicas CA:TRUE, pathlen: 0
Nome alternativo do assunto [Transmissão da CSR]
Uso da chave [Uso da chave definido na CSR]
Uso estendido de chave [Uso estendido de chave definido na CSR]

Certificados de CA subordinada (PathLen 1)

Nome do modelo: blankSubCACertificate_PathLen1_CSRPassthrough

Esse modelo emite certificados de CA subordinada com uma restrição de comprimento de caminho de 1, o que permite que o certificado assine certificados de entidade final, bem como outros certificados de CA subordinada que tenham um comprimento de caminho de 0.

Parâmetro X509 Valor
RawSubject [SubjectOverride definido pelo usuário ou transmissão da CSR]
Restrições básicas CA:TRUE, pathlen: 1
Nome alternativo do assunto [Transmissão da CSR]
Uso da chave [Uso da chave definido na CSR]
Uso estendido de chave [Uso estendido de chave definido na CSR]

Detecção de conflitos

Cada CA tem um perfil que define os tipos de certificados que ela pode emitir. Por exemplo, uma CA pode ser restrita a emitir apenas certificados de autenticação do cliente. O perfil da CA é configurado na certificateProfile seção do CertificateAuthority recurso quando a CA é criada, conforme detalhado em Criar uma autoridade certificadora raiz e Criar uma autoridade de certificação subordinada.

Quando você solicita um certificado usando um modelo predefinido, o Serviço de CA valida os parâmetros do modelo na configuração da CA emissora. Para ser válido, os parâmetros X.509 definidos no modelo escolhido precisam ser um subconjunto daqueles permitidos pela CA emissora de acordo com o certificateProfile. Ocorre um conflito se o modelo solicitar atributos ou permissões que a CA não está autorizada a conceder. Por exemplo, um modelo não pode solicitar um Extended key usage (EKU) de serverAuth se a CA emissora estiver autorizada apenas a conceder clientAuth.

Se o Serviço de CA detectar um conflito, a CertificateRequest falhará. Você pode inspecionar o status do recurso CertificateRequest para entender o motivo da falha.

Exemplo

No cenário a seguir, uma CA chamada client-certs-ca está configurada para emitir certificados apenas para autenticação do cliente. O certificateProfile especifica que o único Extended key usage permitido é TLS web client authentication.

Envie a seguinte CertificateRequest para emitir um certificado para um servidor, usando o modelo 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

Essa solicitação falha devido ao seguinte:

  • O modelo endEntityServerAuthCertificate exige o EKU TLS web server authentication.
  • A CA emissora, client-certs-ca, tem um certificateProfile que permite apenas o EKU TLS web client authentication.

Como o EKU exigido pelo modelo não está incluído na lista de EKUs permitidos pelo perfil da CA, os requisitos do modelo não são um subconjunto dos parâmetros permitidos da CA. Portanto, a solicitação é rejeitada.