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. Assim, os certificados são 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 deles. 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 CA Service aplica os parâmetros do modelo escolhido ao certificado emitido.

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

Tipos de modelos 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 impõe.

Nas descrições de modelo abaixo, todos os parâmetros não definidos explicitamente pelo modelo são extraídos do recurso CertificateRequest, seja fornecido em uma solicitação de assinatura de certificado (CSR) ou em 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 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 [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transferência da CSR]
Uso da chave [Uso da chave definido na AC]
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 [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transferência da CSR]
Uso da chave Crítico, assinatura digital, encriptação de chaves
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 ele seja usado para assinar outros certificados.

Parâmetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:FALSE
Nome alternativo do assunto [Transferência da CSR]
Uso da chave Crítico, assinatura digital, encriptação de chaves
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 [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:TRUE, pathlen: 0
Nome alternativo do assunto [Transferência 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 e outros certificados de CA subordinada com um comprimento de caminho de 0.

Parâmetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:TRUE, pathlen: 1
Nome alternativo do assunto [Transferência 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 AC tem um perfil que define os tipos de certificados que ela pode emitir. Por exemplo, uma CA pode ser restrita à emissão de certificados de autenticação de cliente. O perfil da CA é configurado na seção certificateProfile do recurso CertificateAuthority quando a CA é criada, conforme detalhado em Criar uma autoridade de certificação 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 com a configuração da CA emissora. Para serem válidos, os parâmetros X.509 definidos no modelo escolhido precisam ser um subconjunto daqueles permitidos pela CA emissora de acordo com o certificateProfile. Um conflito ocorre se o modelo solicita 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 AC emissora estiver autorizada apenas a conceder clientAuth.

Se o CA Service detectar um conflito desse tipo, o CertificateRequest vai 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 de cliente. O certificateProfile especifica que o único Extended key usage permitido é TLS web client authentication.

Envie o 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 a EKU exigida pelo modelo não está incluída na lista de EKUs permitidas 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.