Crie uma CA subordinada a partir de uma CA externa
Esta página descreve como criar uma autoridade de certificação (AC) subordinada que se encadeia a uma AC de raiz externa.
Se tiver uma hierarquia de infraestrutura de chave pública (PKI) existente que contenha uma AC raiz e ACs subordinadas, pode manter a mesma AC raiz e criar uma AC subordinada no serviço de AC que se encadeia até à sua AC raiz externa. A chave e as operações da AC raiz externa permanecem fora do Google Cloud. Só pode usar a AC de raiz externa para emitir o certificado da AC subordinada para Google Cloud. A CA subordinada é imediatamente considerada fidedigna por qualquer carga de trabalho que considere fidedigna a CA raiz externa. Em seguida, pode usar a AC subordinada para emitir certificados sem ter de contactar a AC raiz externa no momento da execução.
Antes de começar
- Certifique-se de que tem a função do IAM de gestor 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 o artigo Configure políticas de IAM. - Identifique a AC de raiz externa.
- Defina o nome, o assunto, o período de validade e o tamanho da chave para a AC subordinada. Para mais informações, consulte o artigo Determine CA Settings.
Crie uma CA subordinada a partir de uma CA externa
A criação de uma CA subordinada a partir de uma CA externa envolve os seguintes passos:
Gere o pedido de assinatura de certificado (CSR) da AC subordinada: o primeiro passo é gerar um CSR para a AC subordinada e, em seguida, transferir o CSR.
Obtenha o certificado da AC subordinada assinado pela AC de raiz externa: o segundo passo é enviar o CSR para a AC de raiz externa para assinatura. Certifique-se de que segue as instruções específicas da AC de raiz externa para enviar CSRs e obter certificados assinados.
Importe o certificado da AC subordinada assinado para o serviço de AC: o passo final consiste em carregar a cadeia de certificados PEM assinada através da CLI do Google Cloud ou da Google Cloud consola.
A secção seguinte mostra como criar uma AC subordinada a partir de uma AC raiz externa.
Crie um CSR
Consola
Aceda ao menu Segurança > Serviço de autoridade de certificação na Google Cloud consola.
Clique no separador Gestor de AC.
Clique em Criar AC.
Selecione o tipo de AC:
- Clique em CA subordinado.
- No campo Válido durante, introduza a duração durante a qual quer que os certificados emitidos pelo certificado da CA sejam válidos.
- Clique em A AC de raiz é externa.
- Escolha uma das opções disponíveis para o Nível da CA. Para mais informações, consulte Selecione os níveis de operações.
- Em Regionalização, selecione uma localização de CA na lista.
- Clicar em Seguinte.
- No campo Organização (O), introduza o nome da sua empresa.
- Opcional: no campo Unidade organizacional (UO), introduza a subdivisão da empresa ou a unidade empresarial.
- Opcional: no campo Nome do país (C), introduza um código do país de duas letras.
- Opcional: no campo Nome do estado ou da província, introduza o nome do seu estado.
- Opcional: no campo Nome da localidade, introduza o nome da sua cidade.
- No campo Nome comum (CN) da AC, introduza o nome da AC.
- Clique em Continuar.
- Escolha o algoritmo de chave que melhor se adapta às suas necessidades. Para obter informações sobre como decidir o algoritmo de chave adequado, consulte Escolha um algoritmo de chave.
- Clique em Continuar.
- Escolha se quer usar um contentor do Cloud Storage gerido pela Google ou pelo cliente.
- Para um contentor do Cloud Storage gerido pela Google, o serviço de AC cria um contentor gerido pela Google na mesma localização que a AC.
- Para um contentor do Cloud Storage gerido pelo cliente, clique em Procurar e selecione um dos contentores do Cloud Storage existentes.
- Clique em Continuar.
Os passos seguintes são opcionais.
Se quiser adicionar etiquetas à CA, faça o seguinte:
- Clique em Adicionar item.
- No campo Chave 1, introduza a chave da etiqueta.
- No campo Valor 1, introduza o valor da etiqueta.
- Se quiser adicionar outra etiqueta, clique em Adicionar item. Em seguida, adicione a chave e o valor da etiqueta, conforme mencionado nos passos 2 e 3.
- Clique em Continuar.
Reveja cuidadosamente todas as definições e, de seguida, clique em Concluído para criar a CA.
Transfira o CSR
- Na página Autoridade de certificação, selecione a CA que quer ativar.
- Clique em Ativar.
Na caixa de diálogo apresentada, clique em
Transferir CSR.
gcloud
Para criar um conjunto de ACs para a AC subordinada, execute o seguinte comando. Para mais informações, consulte o artigo Crie um conjunto de CA.
gcloud privateca pools create SUBORDINATE_POOL_ID --location=LOCATION
Substitua o seguinte:
- SUBORDINATE_POOL_ID: o nome do grupo de ACs.
- LOCATION: a localização do grupo de ACs.
Para criar uma AC subordinada no conjunto de ACs criado, execute o seguinte comando
gcloud
. O comandogcloud
também cria um CSR e guarda-o no ficheiro FILE_NAME.gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --location=LOCATION \ --create-csr --csr-output-file=FILE_NAME \ --key-algorithm="ec-p256-sha256" \ --subject="CN=Example Server TLS CA, O=Example LLC"
Substitua o seguinte:
- SUBORDINATE_CA_ID: o identificador exclusivo da AC subordinada.
- SUBORDINATE_POOL_ID: o nome do grupo de ACs.
- LOCATION: a localização do grupo de ACs.
- FILE_NAME: o nome do ficheiro onde o CSR codificado em PEM é escrito.
A flag
--key-algorithm
usa o algoritmo criptográfico que quer usar para criar uma chave do Cloud HSM gerida para a CA.A flag
--subject
usa o nome X.501 do assunto do certificado.Para mais informações sobre o comando
gcloud privateca subordinates create
, consulte gcloud privateca subordinates create.
A seguinte declaração é devolvida quando o pedido de assinatura de certificado é criado:
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.
Para ver a lista exaustiva de definições disponíveis, execute o seguinte comando:
gcloud privateca subordinates create --help
Se perder o CSR, pode transferi-lo novamente através do seguinte comando:
gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION
Terraform
Para criar um conjunto de ACs e uma AC subordinada nesse conjunto de ACs, use o seguinte ficheiro de configuração:
resource "google_privateca_ca_pool" "default" { name = "test-ca-pool" location = "us-central1" tier = "ENTERPRISE" } resource "google_privateca_certificate_authority" "sub-ca" { pool = google_privateca_ca_pool.default.name certificate_authority_id = "my-certificate-authority-sub" location = "us-central1" config { subject_config { subject { organization = "HashiCorp" common_name = "my-subordinate-authority" } subject_alt_name { dns_names = ["hashicorp.com"] } } x509_config { ca_options { is_ca = true # Force the sub CA to only issue leaf certs max_issuer_path_length = 0 } key_usage { base_key_usage { cert_sign = true crl_sign = true } extended_key_usage { } } } } lifetime = "86400s" key_spec { algorithm = "RSA_PKCS1_4096_SHA256" } type = "SUBORDINATE" }
Para obter o CSR, anexe a seguinte configuração.
data "google_privateca_certificate_authority" "sub-ca-csr" { location = "us-central1" pool = google_privateca_ca_pool.default.name certificate_authority_id = google_privateca_certificate_authority.sub-ca.certificate_authority_id } output "csr" { value = data.google_privateca_certificate_authority.sub-ca-csr.pem_csr }
Corrida
terraform apply
.
Assine o CSR
Transmita o ficheiro CSR gerado ao membro da sua organização responsável pela emissão de certificados e peça-lhe que o assine. Os passos específicos dependem da configuração da sua organização.
Pode experimentar uma AC raiz simples através dos seguintes comandos openssl
:
Shell
Configure as definições da nova AC raiz.
cat > root.conf <<- EOM
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no
[ req_distinguished_name ]
commonName = Sample Root
[ v3_ca ]
subjectKeyIdentifier=hash
basicConstraints=critical, CA:true
EOM
Crie a nova CA raiz.
openssl req -x509 -new -nodes -config root.conf -keyout rootCA.key \
-days 3000 -out rootCA.crt -batch
Configure as extensões que têm de ser adicionadas ao novo certificado de AC subordinada.
cat > extensions.conf <<- EOM
basicConstraints=critical,CA:TRUE,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
extendedKeyUsage=critical,serverAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOM
Assine o CSR da CA subordinada com esta raiz.
openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf
Concatene toda a cadeia de certificados num único ficheiro.
cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt
Carregue o certificado assinado
Para ativar uma AC subordinada através de um certificado assinado, faça o seguinte:
Consola
Aceda à página Serviço de autoridade de certificação na Google Cloud consola.
Clique no separador Gestor de AC.
Em Autoridades de certificação, escolha a CA subordinada que criou.
Clique em
Ativar.Na caixa de diálogo apresentada, clique em Transferir CSR para transferir o ficheiro CSR codificado em PEM que a AC emissora pode assinar.
Clicar em Seguinte.
No campo Carregar cadeia de certificados, clique em Procurar.
Carregue o ficheiro de certificado assinado com a extensão
.crt
.Clique em Ativar.
gcloud
gcloud privateca subordinates activate SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION \
--pem-chain ./chain.crt
Substitua o seguinte:
- SUBORDINATE_CA_ID: o identificador exclusivo da AC subordinada que quer ativar.
- SUBORDINATE_POOL_ID: o nome do conjunto de ACs que contém a AC subordinada.
- LOCATION: a localização do grupo de ACs. Para ver a lista completa de localizações, consulte Localizações.
A flag --pem-chain
é obrigatória. Esta flag usa o ficheiro que contém a lista de certificados codificados em PEM. A lista de certificados começa com o certificado da AC atual e termina com o certificado da AC de raiz.
Para mais informações sobre o comando gcloud privateca subordinates activate
, consulte gcloud privateca subordinates activate.
A seguinte declaração é devolvida quando o certificado assinado é carregado:
Activated certificate authority [SUBORDINATE_CA_ID].
Terraform
- Guarde o certificado da AC assinado localmente como
subordinate.crt
. - Guarde os certificados da AC do signatário localmente como
rootCA.crt
. - Remova a configuração para obter o CSR mencionado no primeiro passo, uma vez que tenta obter o CSR, o que não é permitido após a ativação da AC.
Atualize a configuração da AC subordinada com os seguintes campos e execute
terraform apply
.pem_ca_certificate = file("subordinate.crt") subordinate_config { pem_issuer_chain { pem_certificates = [file("rootCA.crt")] } }
Se a cadeia de emissão incluir mais do que uma AC, especifique o valor como
[file("intermediateCA.cert"), file("rootCA.crt")]
.
O que se segue?
- Saiba como pedir certificados.
- Saiba mais sobre os modelos e as políticas de emissão.