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
endEntityServerAuthCertificateexige o EKUTLS web server authentication. - A CA emissora,
client-certs-ca, tem umcertificateProfileque permite apenas o EKUTLS 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.