Solicitar um certificado
Nesta página, descrevemos como criar uma solicitação de certificado no Certificate Authority Service.
É possível solicitar um certificado usando os seguintes métodos:
- Gere sua própria chave privada ou pública e envie uma solicitação de assinatura de certificado (CSR).
- Use uma chave privada ou pública gerada automaticamente pelo serviço de CA.
- Use uma chave do Cloud Key Management Service (Cloud KMS) atual.
Antes de começar
Para receber as permissões necessárias para emitir certificados, peça ao administrador que conceda a você o papel do IAM de Solicitante de certificado do serviço de CA (
roles/privateca.certificateRequester
) ou Gerenciador de certificados do serviço de CA (roles/privateca.certificateManager
).Para mais informações sobre os papéis predefinidos do IAM para o CA Service, consulte Controle de acesso com o IAM.
Para informações sobre como conceder um papel do IAM a um principal, consulte Conceder um único papel.
Solicitar certificado usando uma CSR
Para receber um certificado, gere uma CSR, que será usada para solicitar o certificado.
Gerar a CSR
Para instruções detalhadas sobre como gerar uma CSR usando o OpenSSL, consulte Como gerar CSR com OpenSSL. Você também pode usar o exemplo de arquivo de configuração a seguir como referência ao gerar sua CSR.
Para usar o arquivo de configuração de exemplo, siga estas etapas:
Crie um arquivo de configuração chamado
csr.cnf
usando a seguinte configuração.cat << EOF > csr.cnf [req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] CN = example.com [v3_req] keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com EOF
Este exemplo gera uma chave RSA de 2048 bits (criptografada com senha) e uma CSR correspondente com o seguinte:
- o atributo
commonName
no DN do titular - a extensão
subjectAlternativeName
- a extensão
keyUsage
(marcada como crítica) - a extensão
extendedKeyUsage
Modifique os parâmetros conforme necessário. Para usar o formato de arquivo de configuração
x509v3_config
e definir extensões para certificados X.509 e CSRs, consulte a documentação do OpenSSL.- o atributo
Execute o seguinte comando
openssl
para gerar uma CSR e uma chave privada correspondente:openssl req -newkey rsa:2048 -out csr.pem -keyout key.pem -config csr.cnf
Esse comando gera os seguintes arquivos:
csr.pem
: sua CSR, pronta para ser enviada a uma CAkey.pem
: sua chave privada, que você precisa manter em segurança
Use o arquivo
csr.pem
na sua solicitação de certificado.
Enviar solicitação de certificado usando a CSR
Para solicitar um certificado usando a CSR, siga estas etapas:
Console
Acesse a página Certificate Authority Service no consoleGoogle Cloud .
Clique em Solicitar um certificado.
Selecione uma região. A região precisa ser a mesma do pool de CA que você pretende usar.
Selecione um pool de CAs.
Opcional: selecione uma AC específica no pool de ACs. Ao escolher uma CA específica para emissão de certificados, você cria uma dependência nela, o que dificulta a rotação de CAs.
Opcional: escolha um modelo de certificado. Se você usar um modelo de certificado, verifique se as políticas dele não conflitam com as políticas do pool de CA selecionado.
Clique em Fornecer solicitação de assinatura de certificado (CSR) e em Próxima. Os detalhes do certificado são exibidos.
Opcional: para substituir o nome do certificado gerado automaticamente, insira o nome personalizado no campo Nome do certificado. Depois que o certificado for criado, não será possível excluir ou reutilizar o nome dele.
Opcional: para escolher um período de validade personalizado para o certificado, insira o valor no campo Válido por.
Copie e cole a CSR na caixa CSR do certificado. Se você quiser fazer upload de um arquivo que contenha a CSR, clique em Procurar e escolha o arquivo.
Clique em Gerar certificado.
Baixe o certificado assinado
- Para ver o certificado gerado, clique em Ver certificado e depois em Ver.
- Para copiar o certificado, clique em
.crt
, clique em Fazer o download do certificado.
. Para fazer o download do certificado
como um arquivo - Opcional: para fazer o download da cadeia de certificados, clique em Fazer download da cadeia de certificados.
gcloud
gcloud privateca certificates create CERT_ID \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--csr CSR_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--validity "P30D"
Substitua:
- CERT_ID: o identificador exclusivo do certificado.
- POOL_ID: o nome do pool de ACs.
- ISSUER_LOCATION: o local do certificado.
- CSR_FILENAME: o arquivo que armazena a CSR codificada em PEM.
- CERT_OUTPUT_FILE: o caminho em que o arquivo de cadeia de certificados codificado em PEM precisa ser gravado. A cadeia de certificados é ordenada da entidade final para a raiz.
A flag --validity
define a duração da validade do certificado. É uma flag opcional cujo valor padrão é de 30 dias.
Para mais informações sobre o comando gcloud privateca certificates create
, consulte gcloud privateca certificates
create.
Terraform
API REST
Gere uma solicitação de assinatura de certificado (CSR) usando o método de sua preferência, como
openssl
.Confira a seguir um exemplo de CSR codificada para JSON.
-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQ8wDQYDVQQK\nDAZKb29uaXgxEzARBgNVBAMMCmpvb25peC5uZXQwggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQCnyy+5vcRQUBPqAse3ojmWjyUvhcJK6eLRXpp0teEUF5kg\nHb2ov8gYXb9sSim5fnvs09dGYDKibSrL4Siy7lA/NzMzWtKwyQQeLIQq/cLUJVcd\ndItJ0VRcqr+UPkTCii2vrdcocNDChHM1J8chDdl6DkpYieSTqZwlPcWlQBGAINmT\nT3Q0ZarIVM5l74j13WPuToGrhbVOIZXWxWqJjlHbBA8B/VKtSRCzM1qG60y8Pu2f\n6c78Dfg8+CGRzGwnz8aFS0Yf9czT9luNHSadS/RHjvE9FPZCsinz+6mJlXRcphi1\nKaHsDbstUAhse1h5E9Biyr9SFYRHxY7qRv9aSJ/dAgMBAAGgADANBgkqhkiG9w0B\nAQsFAAOCAQEAZz+I9ff1Rf3lTewXRUpA7nr5HVO1ojCR93Pf27tI/hvNH7z7GwnS\noScoJlClxeRqABOCnfmVoRChullb/KmER4BZ/lF0GQpEtbqbjgjkEDpVlBKCb0+L\nHE9psplIz6H9nfFS3Ouoiodk902vrMEh0LyDYNQuqFoyCZuuepUlK3NmtmkexlgT\n0pJg/5FV0iaQ+GiFXSZhTC3drfiM/wDnXGiqpbW9WmebSij5O+3BNYXKBUgqmT3r\nbryFydNq4qSOIbnN/MNb4UoKno3ve7mnGk9lIDf9UMPvhl+bT7C3OLQLGadJroME\npYnKLoZUvRwEdtZpbNL9QhCAm2QiJ6w+6g==\n-----END CERTIFICATE REQUEST-----
Solicite um certificado.
Método HTTP e URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates?certificate_id=CERTIFICATE_ID
Corpo JSON da solicitação:
{ "lifetime": { "seconds": 3600, "nanos": 0 }, "pem_csr": "PEM_CSR" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/project-id/locations/location/certificateAuthorities/ca-id/certificates/certificate-id", "pemCertificate": "-----BEGIN CERTIFICATE-----...", "certificateDescription": {...} }
Solicitar certificado usando uma chave gerada automaticamente
Console
É possível usar o console Google Cloud para gerar certificados TLS de cliente ou servidor.
Acesse a página Certificate Authority Service no consoleGoogle Cloud .
Clique em Solicitar um certificado.
Selecione uma região. A região precisa ser a mesma do pool de CA que você pretende usar.
Selecione um pool de CAs.
Clique em Inserir detalhes manualmente. Os detalhes do certificado são exibidos.
Opcional: substitua o Nome do certificado gerado automaticamente por um nome personalizado e exclusivo.
Opcional: para escolher um período de validade personalizado para o certificado, insira o valor no campo Válido por.
Adicionar nome de domínio
- Em Adicionar nome de domínio, digite um nome de domínio no campo Nome de domínio 1.
- Opcional: se você quiser adicionar mais de um nome de domínio, clique em Adicionar item e digite outro nome de domínio no campo Nome de domínio 2.
Uso estendido de chave
Opcional: em Uso da chave estendida, selecione uma das seguintes opções com base no seu caso de uso:
- TLS do cliente: esses certificados permitem autenticar a identidade de um solicitante.
- TLS do servidor: esses certificados permitem autenticar a identidade de um servidor.
Clique em Próxima.
Configurar o tamanho e o algoritmo da chave
- Opcional: em Configurar tamanho e algoritmo da chave, selecione o tamanho e o algoritmo da chave de assinatura na lista. Se você pular esta etapa, será usada a chave de 2048 bits RSASSA-PSS com um resumo SHA 256. Para informações sobre como selecionar uma chave e um algoritmo de assinatura, consulte Escolher um algoritmo de chave.
- Clique em Gerar certificado.
Baixe o certificado assinado
- Para ver o certificado gerado, clique em Ver certificado e depois em Ver.
- Opcional: para fazer o download da cadeia de certificados codificada em PEM, clique em Fazer o download da cadeia de certificados.
Opcional: para fazer o download da chave privada associada codificada em PEM, clique em Fazer o download da chave privada.
gcloud
Para usar o recurso de chave gerada automaticamente, instale a biblioteca Python Cryptographic Authority (PyCA). Para instruções sobre como instalar a biblioteca de criptografia Pyca, consulte Como incluir a biblioteca de criptografia Pyca.
Para criar um certificado, use o seguinte comando gcloud
:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "CERTIFICATE_PROFILE"
Substitua:
- POOL_ID: o nome do pool de ACs.
- ISSUER_LOCATION: o local do certificado.
- KEY_FILENAME: o caminho em que o arquivo de chave privada gerado precisa ser gravado.
- CERT_OUTPUT_FILE: o caminho em que o arquivo de cadeia de certificados codificado em PEM precisa ser gravado. A cadeia de certificados é ordenada da entidade final para a raiz.
- DNS_NAME: um ou mais nomes alternativos do assunto (SANs) de DNS separados por vírgulas.
- CERTIFICATE_PROFILE: o identificador exclusivo do
perfil de
certificado. Por exemplo, use
leaf_server_tls
para TLS do servidor de entidade final.
O comando gcloud
menciona as seguintes flags:
--generate-key
: gera uma nova chave privada RSA-2048 na sua máquina.
Também é possível usar qualquer combinação das seguintes flags:
--dns-san
: permite transmitir um ou mais SANs DNS separados por vírgula.--ip-san
: permite transmitir um ou mais SANs de IP separados por vírgulas.--uri-san
: permite transmitir um ou mais URIs SANs separados por vírgulas.--subject
: permite transmitir um nome X.501 do assunto do certificado.
Para mais informações sobre o comando gcloud privateca certificates create
, consulte gcloud privateca certificates
create.
Go
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Solicitar um certificado usando uma chave do Cloud KMS
Só é possível usar a Google Cloud CLI para solicitar certificados com uma chave do Cloud KMS.
gcloud
Para usar uma chave do Cloud KMS e criar um certificado TLS de servidor de entidade final, execute o seguinte comando:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Substitua:
- POOL_ID: o nome do pool de ACs.
- ISSUER_LOCATION: o local do certificado.
- PROJECT_ID: o ID do projeto;
- LOCATION_ID: a localização do keyring.
- KEY_RING: o nome do keyring em que a chave está localizada.
- KEY: o nome da chave;
- KEY_VERSION: a versão da chave.
- CERT_OUTPUT_FILE: o caminho do arquivo de cadeia de certificados codificado em PEM. O arquivo da cadeia de certificados é ordenado da entidade final para a raiz.
- DNS_NAME: SANs de DNS separadas por vírgulas.
Emitir um certificado de uma CA específica em um pool de CAs
Nesta seção, descrevemos como emitir certificados de uma CA específica em um pool de CAs.
Console
Acesse a página Certificate Authority Service no consoleGoogle Cloud .
Clique em Solicitar um certificado.
Selecione uma região. A região precisa ser a mesma do pool de CA que você pretende usar.
Selecione um pool de CAs.
Para escolher uma AC, clique em Usar uma AC específica deste pool de ACs e selecione uma AC na lista.
Selecione outros parâmetros, como fez nas seções Solicitar certificado usando uma chave gerada automaticamente ou Solicitar certificado usando uma CSR.
gcloud
Para segmentar uma CA específica no pool de CAs para emissão de certificados, adicione a flag --ca
com o CA_ID da CA que precisa emitir o certificado.
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--ca CA_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Terraform
Solicitar um certificado no modo de validação
Solicitar um certificado no modo de validação cria um certificado de teste não assinado. Esse certificado de teste não é codificado em PEM e não gera cobranças. Embora não seja possível fazer o download do certificado, a descrição hipotética permite confirmar que você pode emitir um certificado assinado com os parâmetros escolhidos.
Para solicitar um certificado no modo de validação, siga estas etapas:
Console
Acesse a página Certificate Authority Service no consoleGoogle Cloud .
Clique em Solicitar um certificado.
Selecione Usar o modo de validação para uma descrição de certificado hipotético em vez de um certificado assinado.
Siga as mesmas etapas que você seguiria para solicitar um certificado assinado.
A seguir
- Saiba mais sobre perfis de certificado.
- Saiba como revogar certificados.
- Saiba como ordenar e filtrar certificados. - Saiba como gerenciar certificados usando a Google Cloud CLI.