Modelos de certificados predefinidos

O Certificate Authority Service oferece modelos de certificados 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 exemplos de utilização comuns, estes modelos prontos a usar simplificam a gestão de certificados, reduzem o risco de erro humano e aplicam as práticas recomendadas de segurança. Cada modelo é concebido para um caso de utilização específico para garantir que os certificados são emitidos com os parâmetros corretos para o respetivo objetivo, ao mesmo tempo que respeitam as limitações definidas pela autoridade de certificação (AC) emissora.

Este documento destina-se a públicos-alvo no grupo de operadores de aplicações, como programadores de aplicações ou cientistas de dados, que gerem os ciclos de vida dos certificados nos respetivos projetos. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Aplique um modelo de certificado

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

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

Tipos de modelos de certificados

Estão disponíveis os seguintes modelos de certificados predefinidos. Cada modelo é concebido para um exemplo de utilização específico e pré-configura os parâmetros X.509 que o modelo aplica.

Nas descrições dos modelos abaixo, todos os parâmetros não definidos explicitamente pelo modelo são retirados do recurso CertificateRequest, quer sejam fornecidos num pedido de assinatura de certificado (CSR) ou em campos que definir.

Predefinição

Nome do modelo: default

Este modelo é usado automaticamente se não especificar um modelo de certificado no recurso CertificateRequest. O certificado emitido herda as definições Key usage e Extended key usage do perfil da AC emissora e define Basic constraints como CA:FALSE, o que impede 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 requerente [Passthrough from CSR]
Utilização da chave [Utilização da chave definida na AC]
Utilização alargada da chave [Utilização alargada da chave definida na AC]

Certificados TLS de cliente

Nome do modelo: endEntityClientAuthCertificate

Este modelo emite certificados de entidade 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, o que impede a utilização do certificado 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 requerente [Passthrough from CSR]
Utilização da chave Crítico, assinatura digital, cifragem de chaves
Utilização alargada da chave Autenticação de cliente Web TLS

Certificados TLS do servidor

Nome do modelo: endEntityServerAuthCertificate

Este modelo emite certificados de entidade final para a autenticação TLS do lado do servidor, o que é ideal para utilização com servidores Web. O certificado emitido define Extended key usage como TLS web server authentication e Basic constraints como CA:FALSE, o que impede 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 requerente [Passthrough from CSR]
Utilização da chave Crítico, assinatura digital, cifragem de chaves
Utilização alargada da chave Autenticação de servidor Web TLS

Certificados da AC subordinada (PathLen 0)

Nome do modelo: blankSubCACertificate_PathLen0_CSRPassthrough

Este modelo emite certificados de AC subordinados com uma restrição de comprimento do caminho de 0, o que permite que o certificado assine certificados de entidade final, mas não outros certificados de AC.

Parâmetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restrições básicas CA:TRUE, pathlen: 0
Nome alternativo do requerente [Passthrough from CSR]
Utilização da chave [Utilização da chave definida no CSR]
Utilização alargada da chave [Utilização alargada da chave definida no CSR]

Certificados da AC subordinada (PathLen 1)

Nome do modelo: blankSubCACertificate_PathLen1_CSRPassthrough

Este modelo emite certificados da AC subordinada com uma restrição de comprimento do caminho de 1, o que permite que o certificado assine certificados de entidade final, bem como outros certificados da AC subordinada que tenham um comprimento do 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 requerente [Passthrough from CSR]
Utilização da chave [Utilização da chave definida no CSR]
Utilização alargada da chave [Utilização alargada da chave definida no CSR]

Deteção de conflitos

Cada AC tem um perfil que define os tipos de certificados que está autorizada a emitir. Por exemplo, uma AC pode estar restrita à emissão de certificados de autenticação de cliente. O perfil da CA é configurado na secção certificateProfile do recurso CertificateAuthority quando a CA é criada, conforme detalhado nos artigos Crie uma autoridade de certificação de raiz e Crie uma autoridade de certificação subordinada.

Quando pede um certificado através de um modelo predefinido, o serviço de AC valida os parâmetros do modelo em relação à configuração da AC de emissão. Para serem válidos, os parâmetros X.509 definidos no modelo escolhido têm de ser um subconjunto dos parâmetros permitidos pela AC emissora de acordo com a respetiva certificateProfile. Ocorre um conflito se o modelo pedir atributos ou autorizações que a AC não está autorizada a conceder. Por exemplo, um modelo não pode pedir um Extended key usage (EKU) de serverAuth se a AC emissora só estiver autorizada a conceder clientAuth.

Se o serviço de CA detetar um conflito deste tipo, o CertificateRequest falha. Pode inspecionar o estado do recurso CertificateRequest para compreender o motivo da falha.

Exemplo

No cenário seguinte, uma AC denominada client-certs-ca está configurada para emitir certificados apenas para autenticação de clientes. O respetivo certificateProfile especifica que o único Extended key usage permitido é TLS web client authentication.

Envia 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

Este pedido falha devido ao seguinte:

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

Uma vez que a EKU exigida pelo modelo não está incluída na lista de EKUs permitidas pelo perfil da AC, os requisitos do modelo não são um subconjunto dos parâmetros permitidos da AC. Por conseguinte, o pedido é rejeitado.