Crie um modelo de certificado
Esta página descreve os atributos de um modelo de certificado e explica como pode criar um modelo de certificado. Para saber mais acerca dos modelos de certificados, consulte o artigo Acerca dos modelos de certificados.
Funções necessárias
Para receber as autorizações de que precisa para criar um modelo de certificado,
peça ao seu administrador que lhe conceda a função do IAM
CA Service Operation Manager (roles/privateca.caManager
)
no projeto, na pasta ou na organização.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um modelo de certificado
Para criar um modelo de certificado, use um dos seguintes métodos:
Consola
Aceda à página Serviço de autoridade de certificação na Google Cloud consola.
Clique no separador Gestor de modelos e, de seguida, em Criar modelo.
Selecione uma localização para o modelo de certificado através da lista Região. Esta localização tem de ser a mesma que a do conjunto de ACs que pretende usar com o modelo de certificado.
Introduza um identificador exclusivo para o modelo de certificado no campo ID do modelo de certificado. Opcionalmente, forneça uma descrição para o modelo de certificado.
Clicar em Seguinte.
Se quiser configurar valores x.509 predefinidos para certificados que usam este modelo, clique no botão Incluir valores predefinidos em certificados emitidos através deste modelo de certificado. Em seguida, clique em Configurar valores predefinidos.
Configure os valores predefinidos com as seguintes informações:
Defina a utilização da chave base
Esta definição refere-se ao campo
Key Usage
num certificado digital. Especifica como a chave privada do certificado pode ser usada, como para encriptação de chaves, encriptação de dados, assinatura de certificados e assinatura de CRL. Para mais informações, consulte o artigo Utilização de chaves.- Para selecionar as utilizações de chaves base, clique no botão Especificar utilizações de chaves base para certificados emitidos a partir deste conjunto de ACs e, de seguida, selecione as opções apresentadas.
- Clicar em Seguinte.
Defina a utilização alargada da chave
Esta definição refere-se ao campo
Extended Key Usage (EKU)
num certificado digital. Fornece restrições mais específicas e refinadas sobre como a chave pode ser usada, como para autenticação de servidor, autenticação de cliente, assinatura de código, proteção de email e muito mais. Para mais informações, consulte o artigo Utilização de chaves alargada.As utilizações alargadas da chave são definidas através de identificadores de objetos (OIDs). Se não configurar as utilizações alargadas da chave, todos os cenários de utilização da chave são permitidos.
- Para selecionar as utilizações alargadas da chave, clique no botão Escrever utilizações alargadas da chave para certificados emitidos a partir deste conjunto de ACs e, de seguida, selecione as opções indicadas.
- Clicar em Seguinte.
Defina identificadores de políticas
A extensão das políticas de certificados no certificado expressa as políticas que o conjunto de ACs emissoras segue. Esta extensão pode incluir informações sobre como as identidades são validadas antes da emissão de certificados, como os certificados são revogados e como a integridade do conjunto de ACs é garantida. Esta extensão ajuda a validar os certificados emitidos pelo conjunto de ACs e a ver como os certificados são usados.
Para mais informações, consulte as Políticas de certificados.
Para especificar a política que define a utilização do certificado, faça o seguinte:
- Opcional: adicione o identificador da política no campo Identificadores de políticas.
- Clicar em Seguinte.
Adicione servidores OCSP de acesso a informações de autoridade (AIA)
A extensão AIA num certificado faculta as seguintes informações:
- Endereço dos servidores OCSP a partir dos quais pode verificar o estado de revogação do certificado.
- O método de acesso para o emissor do certificado.
Para mais informações, consulte o artigo Acesso a informações de autoridade.
A adição de servidores OCSP é opcional. Para adicionar os servidores OCSP que aparecem no campo da extensão AIA nos certificados, faça o seguinte:
- Clique em Adicionar item.
- No campo URL do servidor, adicione o URL do servidor OCSP.
- Clique em Concluído.
- Clicar em Seguinte.
Opções de CA
O campo Opções da AC num modelo de certificado define como o certificado resultante pode ser usado numa hierarquia da autoridade de certificação (AC). Determina essencialmente se um certificado pode ser usado para assinar outros certificados e, se for o caso, quaisquer restrições nos certificados que emite.
Escolha uma das opções seguintes:
Inclua as configurações para descrever as extensões X.509 da AC: especifique as definições num modelo de certificado que controlam as extensões X.509.
Restringir os certificados emitidos para utilização apenas em ACs: esta opção só aparece se selecionar a caixa de verificação mencionada no passo anterior. Este valor booleano indica se o certificado é um certificado de AC. Se estiver definido como
true
, o certificado pode ser usado para assinar outros certificados. Sefalse
, é um certificado de entidade e não pode assinar outros certificados. Se clicar neste botão para ativar/desativar, é-lhe pedido que defina restrições de nomes para a extensão nos certificados da AC.Inclua as configurações para descrever as extensões X.509 de restrição do comprimento do caminho: especifique as definições que controlam o comprimento de uma cadeia de certificados, com origem num certificado específico.Especifica o número máximo de ACs que podem ser encadeadas até este certificado da AC. Se o comprimento máximo do caminho do emissor for definido como
0
, a AC só pode emitir certificados de entidade final. Se for definido como1
, a cadeia abaixo deste certificado da AC só pode incluir uma AC subordinada. Se não for declarado nenhum valor, o número de ACs subordinadas na cadeia abaixo desta AC não tem limite.- Clicar em Seguinte.
Configure extensões adicionais
Opcional: pode configurar extensões personalizadas adicionais para incluir nos certificados emitidos pelo conjunto de ACs. Faça o seguinte:
- Clique em Adicionar item.
- No campo Identificador do objeto, adicione um identificador do objeto válido formatado como dígitos separados por pontos.
- No campo Valor, adicione o valor codificado em base64 para o identificador.
- Se a extensão for fundamental, selecione A extensão é fundamental.
Para guardar todos os valores predefinidos, clique em Concluído.
Em seguida, aceda à secção Configurar restrições de extensões. Selecione uma das seguintes opções:
- Copiar todas as extensões dos pedidos de certificados para o certificado
- Remova todas as extensões dos pedidos de certificados
- Copie extensões específicas de pedidos de certificados para o certificado
- Se optar por copiar extensões específicas, pode fazer o seguinte:
- Clique no campo Extensões de certificados conhecidas e desmarque as extensões não necessárias da lista.
- No campo Extensões personalizadas, adicione os identificadores de objetos para as extensões que quer incluir nos certificados emitidos pelo conjunto de ACs.
Clique em Seguinte e aceda à secção Configure restrições de identidade. Para configurar restrições no assunto e nos SANs nos certificados emitidos pelo conjunto de ACs, selecione uma ou ambas as seguintes opções:
- Copiar o assunto dos pedidos de certificado para o certificado
- Copiar nomes alternativos do requerente (SAN) dos pedidos de certificado para o certificado
Clique em Seguinte e, de seguida, clique em Concluído.
gcloud
gcloud privateca templates create TEMPLATE_ID \
--copy-subject \
--copy-sans \
--identity-cel-expression <expr> \
--predefined-values-file FILE_PATH \
--copy-all-requested-extensions \
--copy-extensions-by-oid <1.2.3.4,5.6.7.8> \
--copy-known-extensions <ext1,ext2>
Substitua o seguinte:
- TEMPLATE_ID: o identificador exclusivo do modelo de certificado.
- FILE_PATH: o ficheiro YAML que descreve os valores X.509 definidos pelo modelo de certificado.
A flag --copy-sans
permite que a extensão do nome alternativo do requerente (SAN) do pedido de certificado seja copiada para o certificado assinado. Em alternativa, pode especificar --no-copy-sans
para rejeitar quaisquer SANs especificadas pelo autor da chamada do pedido de certificado.
A flag --copy-subject
permite que o assunto do pedido de certificado seja copiado para o certificado assinado. Em alternativa, pode especificar --no-copy-subject
para remover quaisquer assuntos especificados pelo autor da chamada do pedido de certificado.
A flag --identity-cel-expression
usa uma expressão CEL que é avaliada em relação ao requerente e ao nome alternativo do requerente do certificado antes de ser emitido e devolve um valor booleano que indica se o pedido deve ser permitido. Para ver informações sobre como usar uma expressão do Idioma de expressão comum (IEC) para um modelo de certificado, consulte o artigo Usar o IEC para modelos de certificados.
O sinalizador --predefined-values-file
especifica o caminho para um ficheiro YAML que descreve quaisquer valores X.509 predefinidos definidos por este modelo. As extensões fornecidas são copiadas para todos os pedidos de certificados que usam este modelo, tendo precedência sobre quaisquer extensões permitidas no pedido de certificado. Se atualizar qualquer parte dos valores X.509 predefinidos, a atualização substitui o conjunto completo dos valores X.509 predefinidos.
Se a flag --copy-all-requested-extensions
estiver definida, todas as extensões especificadas no pedido de certificado são copiadas para o certificado assinado.
Se o sinalizador --copy-extensions-by-oid
estiver definido, os OIDs específicos são copiados do pedido de certificado para o certificado assinado.
Se a flag --copy-known-extensions
estiver definida, as extensões específicas são copiadas do pedido de certificado para o certificado assinado. Estas extensões conhecidas podem ser uma das seguintes: base-key-usage
, extended-key-usage
, ca-options
, policy-ids
ou aia-ocsp-servers
.
Remova a flag --copy-all-requested-extensions
para ignorar todas as extensões X.509 no pedido de certificado, mas mantenha os valores predefinidos definidos neste modelo.
Segue-se um exemplo de configuração de um modelo de certificado:
keyUsage:
baseKeyUsage:
digitalSignature: true
keyEncipherment: true
contentCommitment: false
dataEncipherment: false
keyAgreement: false
certSign: false
crlSign: false
encipherOnly: false
decipherOnly: false
extendedKeyUsage:
serverAuth: true
clientAuth: false
codeSigning: false
emailProtection: false
timeStamping: false
ocspSigning: false
caOptions:
isCa: true
maxIssuerPathLength: 1
policyIds:
- objectIdPath:
- 1
- 2
- 3
additionalExtensions:
- objectId:
objectIdPath:
- 1
- 2
- 3
critical: false
value: "base64 encoded extension value"
Os valores não especificados no YAML são omitidos ou predefinidos como false
.
As seguintes extensões são omitidas se não for especificado um valor:
keyUsage
policyIds
additionalExtensions
- Campo
maxIssuerPathLength
na extensãocaOptions
As seguintes extensões têm o valor predefinido false
se não for especificado um valor:
- Campo
isCa
na extensãocaOptions
Crie um modelo de certificado para cenários comuns
Esta secção fornece comandos gcloud
para criar um modelo de certificado para exemplos de utilização comuns.
Certificados TLS do servidor DNS para qualquer domínio
Para criar um modelo de certificado para emitir certificados TLS do servidor que permitam qualquer domínio, siga estas instruções:
Crie um ficheiro com o nome
leaf_server_tls_values.yaml
e adicione-lhe a seguinte configuração TLS do servidor de entidade final:leaf_server_tls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true caOptions: isCa: false
Para permitir apenas certificados com SANs do tipo
DNS
, execute o seguinte comandogcloud
:gcloud
gcloud privateca templates create server-tls \ --predefined-values-file leaf_server_tls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == DNS)"
Para mais informações sobre o comando
gcloud privateca templates create
, consulte gcloud privateca templates create.
Certificados TLS do servidor DNS apenas com domínios de teste
Para criar um modelo de certificado para emitir certificados TLS de servidor com SANs de DNS limitados a domínios de teste, use o seguinte comando gcloud
:
gcloud
gcloud privateca templates create server-tls \
--predefined-values-file leaf_server_tls_values.yaml \
--copy-sans --no-copy-subject \
--identity-cel-expression "subject_alt_names.all(san, san.type == DNS && san.value.endsWith('.test.example.com'))"
O conteúdo do ficheiro leaf_server_tls_values.yaml
tem de ser igual ao do exemplo anterior.
Para mais informações sobre a utilização de expressões CEL para garantir que os nomes DNS começam ou terminam com uma string específica, consulte as expressões de exemplo de CEL.
Certificados de identidade de carga de trabalho
Para criar um modelo de certificado para emitir certificados TLS mútuos (mTLS), use as seguintes instruções:
Crie um ficheiro com o nome
leaf_mtls_values.yaml
e adicione-lhe a seguinte configuração de TLS mútuo de entidade final.leaf_mtls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false
Para permitir apenas certificados com SANs de URI SPIFFE, use o comando
gcloud
seguinte:gcloud
gcloud privateca templates create workload-spiffe \ --predefined-values-file leaf_mtls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == URI && san.value.startsWith('spiffe://'))"
Para mais informações sobre o comando
gcloud privateca templates create
, consulte gcloud privateca templates create.
Para mais informações sobre a utilização de expressões CEL para garantir que os nomes DNS começam ou terminam com uma string específica, consulte as expressões de exemplo de CEL.
Conceda acesso ao modelo de certificado
Pode usar um modelo de certificado se tiver a função Utilizador do modelo de certificado do serviço de AC (roles/privateca.templateUser
). Recomendamos que os autores de um modelo de certificado concedam a função de utilizador do modelo de certificado de serviço da AC aos membros da organização que possam usar esse modelo de certificado.
Para conceder a função Utilizador do modelo de certificado do serviço de AC (roles/privateca.templateUser
) a todos no domínio example.com
, use o seguinte comando gcloud
:
gcloud
gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
--member "domain:example.com" \
--role "roles/privateca.templateUser"
Substitua o seguinte:
- TEMPLATE_ID: o identificador exclusivo do modelo de certificado.
Para mais informações sobre o comando gcloud privateca templates add-iam-policy-binding
, consulte o artigo gcloud privateca templates add-iam-policy-binding.
Para mais informações sobre as funções da IAM para o serviço de CA e as respetivas autorizações associadas, consulte o artigo Controlo de acesso com a IAM.
O que se segue?
- Saiba mais acerca do idioma de expressão comum.
- Saiba como usar o idioma de expressão comum.
- Saiba mais acerca dos perfis de certificados.