Crie uma AC raiz:
Nesta página, descrevemos como criar uma autoridade certificadora raiz (CA) em um pool de CAs.
Uma CA raiz está no topo de uma hierarquia de infraestrutura de chave pública (ICP) e é responsável por formar a âncora de confiança da ICP. Para participar e usar certificados corretamente em uma ICP, um dispositivo, software ou componente precisa confiar na ICP. Isso é feito configurando o dispositivo, o software ou o componente para confiar na CA raiz. Como resultado, todos os certificados emitidos pela AC raiz são confiáveis.
Antes de começar
- Verifique se você tem o papel do IAM de gerente de operações do serviço de AC
(
roles/privateca.caManager) ou administrador do serviço de AC (roles/privateca.admin). Para mais informações, consulte Configurar políticas do IAM. Se você usar uma chave do Cloud Key Management Service para assinar certificados emitidos pela AC, conceda os papéis do IAM necessários ao agente de serviço da CA nessa chave do Cloud Key Management Service. Para mais informações sobre as funções específicas necessárias e instruções, consulte Usar o agente de serviço da CA.
Crie uma AC raiz:
Uma CA raiz tem um certificado autoassinado que precisa ser distribuído para os repositórios de confiança dos clientes. O certificado da CA raiz está na parte superior da cadeia de certificados. Nenhuma outra AC pode revogar o certificado de CA. A CRL da CA raiz se aplica apenas aos outros certificados emitidos por ela, mas não a si mesma.
É possível criar uma AC raiz em um pool de CAs atual ou novo. As instruções a seguir usam um pool existente.
Console
Para criar uma CA raiz em um pool de CAs, faça o seguinte:
Acesse a página Serviço de autoridade certificadora no console doGoogle Cloud .
Clique na guia Gerenciador de CA.
Clique na seta de expansão Criar CA e selecione Criar CA em um pool de CAs atual.
Selecionar pool de CAs
Selecione um pool de CA na lista e clique em Continuar.
Selecione o tipo de CA
- Em Tipo, selecione CA raiz.
- No campo Válido por, insira a duração que você quer que os certificados emitidos pela CA raiz sejam válidos.
- Em Estado inicializado, selecione o estado operacional para criar a CA.
- Clique em Continuar.
- No campo Organização (O), insira o nome da sua empresa.
- Opcional: no campo Unidade organizacional (UO), insira a subdivisão ou unidade de negócios da empresa.
- Opcional: no campo Nome do país (C), insira um código de país de duas letras.
- Opcional: no campo Nome do estado ou da província, insira o nome do seu estado.
- Opcional: no campo Nome da localidade, insira o nome da sua cidade.
- No campo Nome comum da CA (CN), insira o nome da CA.
- Clique em Continuar.
- Escolha o algoritmo de chave que melhor atende às suas necessidades. Para mais detalhes sobre as opções de chave de assinatura, consulte Configurar chaves de assinatura da CA.
- Para usar uma chave de assinatura gerenciada pelo cliente, selecione Chave gerenciada pelo cliente e forneça a versão da chave criptográfica do Cloud Key Management Service.
- Clique em Continuar.
- Escolha se você quer usar um bucket do Cloud Storage gerenciado pelo Google ou pelo cliente.
- Para um bucket do Cloud Storage gerenciado pelo Google, o CA Service cria um bucket gerenciado pelo Google no mesmo local da CA.
- Para um bucket do Cloud Storage gerenciado pelo cliente, clique em "Procurar" e selecione um dos buckets do Cloud Storage.
- Clique em Continuar.
As etapas a seguir são opcionais.
Se você quiser adicionar rótulos à CA, faça o seguinte:
- Clique em Adicionar item.
- No campo Chave 1, insira a chave do rótulo.
- No campo Valor 1, insira o valor do rótulo.
- Se quiser adicionar outro rótulo, clique em Adicionar item. Em seguida, adicione a chave e o valor do rótulo, conforme mencionado nas etapas 2 e 3.
- Clique em Continuar.
Revise todas as configurações com atenção e clique em Concluído para criar a CA.
gcloud
Para criar uma nova AC raiz em um pool de ACs, execute o seguinte comando:
gcloud privateca roots create ROOT_CA_ID \ --location=LOCATION \ --pool=POOL_ID \ --key-algorithm=KEY_ALGORITHM \ --subject="CN=my-ca, O=Test LLC"Substitua:
- ROOT_CA_ID: o nome da CA.
- LOCATION: o local do pool de ACs.
- POOL_ID: o nome do pool de ACs.
- KEY_ALGORITHM: o algoritmo a ser usado para criar
uma chave do Cloud KMS. Essa sinalização é opcional. Se você não incluir essa flag, o algoritmo de chave será
rsa-pkcs1-4096-sha256por padrão. Para mais informações, consulte a flag --key-algorithm.
Por padrão, a CA é criada no estado
STAGED. Para ativar uma CA por padrão, inclua a flag--auto-enable.Se você quiser usar um bucket do Cloud Storage gerenciado pelo cliente para publicar certificados de CA e CRLs, adicione
--bucket bucket-nameao comando. Substitua bucket-name pelo nome do bucket do Cloud Storage.Para especificar URLs de acesso personalizados de Acesso a informações de autoridade (AIA) e Ponto de distribuição de CRL (CDP), use as flags
--custom-aia-urlse--custom-cdp-urls. Se especificados, esses URLs serão incluídos em todos os certificados emitidos pela CA e vão substituir os URLs de acesso padrão do bucket do Cloud Storage.Para criar uma AC raiz usando uma chave de assinatura gerenciada pelo cliente, execute o seguinte comando:
gcloud privateca roots create ROOT_CA_ID \ --location=LOCATION \ --pool=POOL_ID \ --kms-key-version=KMS_KEY_VERSION \ --subject="CN=my-ca, O=Test LLC"Substitua:
- ROOT_CA_ID: o identificador exclusivo da CA raiz.
- LOCATION: o local do pool de ACs.
- POOL_ID: o nome do pool de ACs.
- KMS_KEY_VERSION: o ID do recurso completo de uma versão de chave criptográfica do Cloud KMS gerenciada pelo cliente a ser usada como chave de assinatura.
Para mais detalhes sobre as opções de chave de assinatura e como preparar uma chave de assinatura gerenciada pelo cliente, consulte Configurar chaves de assinatura da CA.
Para conferir a lista completa de configurações, execute o seguinte comando:
gcloud privateca roots create --help
Terraform
Para criar uma AC raiz usando uma chave de criptografia do Google Cloud , use a seguinte configuração de exemplo:
Para criar uma CA raiz usando uma chave autogerenciada, use o seguinte exemplo de configuração:
Go
Para autenticar o 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 o 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 o serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
API REST
Crie uma CA raiz.
Para usar uma chave de assinatura gerenciada pelo cliente, especifique o
cloud_kms_key_versionno campokey_specem vez dealgorithm.Para mais detalhes sobre as opções de chave de assinatura e como preparar uma chave de assinatura gerenciada pelo cliente, consulte Configurar chaves de assinatura da CA.
Método HTTP e URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities?certificate_authority_id=ROOT_CA_ID
Corpo JSON da solicitação:
{ "type": "SELF_SIGNED", "lifetime": { "seconds": 315576000, "nanos": 0 }, "config": { "subject_config": { "subject": { "organization": "ORGANIZATION_NAME", "common_name": "COMMON_NAME" } }, "x509_config":{ "ca_options":{ "is_ca":true }, "key_usage":{ "base_key_usage":{ "cert_sign":true, "crl_sign":true } } } }, "key_spec":{ "algorithm":"RSA_PKCS1_4096_SHA256" } }Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }Pesquise a operação até que ela seja concluída.
Método HTTP e URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Depois de verificar se a AC funciona conforme o esperado, é possível ativá-la para começar a emitir certificados balanceados por carga para o pool de AC.
Ativar uma CA raiz
gcloud
Para ativar uma CA raiz, execute o seguinte comando gcloud:
gcloud privateca roots enable ROOT_CA_ID --location=LOCATION --pool=POOL_ID
Substitua:
- ROOT_CA_ID: o nome da CA.
- LOCATION: o local do pool de ACs. Para a lista completa de locais, consulte Locais.
- POOL_ID: o nome do pool de ACs.
Terraform
Se você usar o Terraform para criar uma CA raiz, ela será ativada na
criação. Para criar uma AC raiz no estado STAGED, defina o campo desired_state como STAGED ao criar a AC.
É possível definir o campo desired_state como ENABLED ou DISABLED após a criação da CA.
Go
Para autenticar o 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 o 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 o serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
API REST
Permita que a CA emita certificados do pool de CAs.
Método HTTP e URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/ROOT_CA_ID:enable
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }Pesquise a operação até que ela seja concluída.
Método HTTP e URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Testar uma CA
Para verificar se uma CA pode emitir certificados, solicite um certificado do pool de CA associado e mencione explicitamente o nome da CA que você quer testar usando a flag --ca.
Use os seguintes métodos para solicitar um certificado de um pool de CA:
- Peça ao CA Service para criar uma chave privada ou pública para você.
- Gere sua própria chave privada ou pública e envie uma solicitação de assinatura de certificado (CSR, na sigla em inglês).
É mais fácil usar uma chave privada ou pública gerada automaticamente para solicitar um certificado de uma CA em um pool de CAs. Esta seção fornece informações sobre como testar uma CA usando esse método.
Para usar uma chave privada ou pública gerada automaticamente e solicitar um certificado de
uma CA em um pool de CAs, execute o seguinte comando gcloud:
gcloud privateca certificates create \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--ca=ROOT_CA_ID \
--generate-key \
--key-output-file=KEY_FILENAME \
--cert-output-file=CERT_FILENAME \
--dns-san=DNS_NAME
Substitua:
- POOL_ID: o nome do pool de ACs.
- ISSUER_LOCATION: o local da autoridade de certificação (CA) que emitiu o certificado digital.
- ROOT_CA_ID: o identificador exclusivo da CA que você quer testar.
- KEY_FILENAME: o arquivo em que a chave gerada é gravada no formato PEM.
- CERT_FILENAME: o arquivo em que o arquivo de cadeia de certificados codificado em PEM resultante é gravado. A ordem da cadeia de certificados é da folha para a raiz.
DNS_NAME: um ou mais nomes alternativos do assunto (SANs) de DNS separados por vírgulas.
A flag
--generate-keygera uma nova chave privada RSA-2048 na sua máquina.
Para usar uma solicitação de assinatura de certificado (CSR) e pedir um certificado de uma CA em um pool de CA ou para mais informações sobre como solicitar certificados, consulte Solicitar um certificado e ver os certificados emitidos.
Clonar autoridades certificadoras
Para clonar uma CA atual e renová-la ou criar uma nova com a mesma configuração, execute o seguinte comando:
gcloud privateca roots create NEW_CA_ID \
--location=LOCATION \
--pool=POOL_ID \
--from-ca=EXISTING_CA_ID \
--key-algorithm "ec-p384-sha384"
Substitua:
- NEW_CA_ID: o identificador exclusivo da nova CA.
- LOCATION: o local do pool de ACs.
- POOL_ID: o nome do pool de ACs em que você quer criar a nova CA.
- EXISTING_CA_ID: o ID da CA de origem ou o identificador totalmente qualificado da CA de origem.
A flag --from-ca é compatível com a criação de CAs raiz e subordinadas. A
CA atual precisa estar no mesmo pool que a nova.
A flag --key-algorithm copia toda a configuração da AC da AC atual, exceto a versão da chave do Cloud KMS e o bucket do Cloud Storage.
No entanto, ainda é possível substituir qualquer um dos valores de configuração na nova CA
fornecendo explicitamente a flag apropriada. Por exemplo, ainda é possível especificar
`--subject SUBJECT para usar um novo assunto.
Se você omitir a flag --key-algorithm, o algoritmo vai usar o padrão:
rsa-pkcs1-4096-sha256para CAs raiz.rsa-pkcs1-2048-sha256para CAs subordinadas.
Para mais informações sobre esse comando gcloud, consulte gcloud privateca roots
create.
A seguir
- Saiba como criar uma CA subordinada.
- Saiba como criar uma AC subordinada de uma AC externa.
- Saiba mais sobre os estados da Califórnia.
- Saiba como solicitar certificados.
- Saiba mais sobre modelos e políticas de emissão.