Crea una AC subordinada a partir de una AC externa
En esta página, se describe cómo crear una autoridad certificadora (AC) subordinada que se encadena a una AC raíz externa.
Si tienes una jerarquía de infraestructura de clave pública (PKI) existente que contiene una AC raíz y AC subordinadas, puedes mantener la misma AC raíz y crear una AC subordinada en el servicio de AC que se conecte a tu AC raíz externa. La clave y las operaciones de la AC raíz externa permanecen fuera de Google Cloud. Solo puedes usar la AC raíz externa para emitir el certificado de la AC subordinada a Google Cloud. Cualquier carga de trabajo que confíe en la AC raíz externa confía inmediatamente en la AC subordinada. Luego, puedes usar la AC subordinada para emitir certificados sin necesidad de volver a la AC raíz externa durante el tiempo de ejecución.
Antes de comenzar
- Asegúrate de tener el rol de IAM de administrador de operaciones del servicio de AC (
roles/privateca.caManager
) o de administrador del servicio de AC (roles/privateca.admin
). Para obtener información, consulta Configura políticas de IAM. - Identifica la AC raíz externa.
- Define el nombre, el asunto, el período de validez y el tamaño de clave de la AC subordinada. Para obtener información, consulta Determina la configuración de la AC.
Crea una AC subordinada a partir de una AC externa
La creación de una AC subordinada a partir de una AC externa implica los siguientes pasos:
Genera la solicitud de firma de certificado (CSR) de la AC subordinada: El primer paso es generar una CSR para la AC subordinada y, luego, descargarla.
Obtén el certificado de la AC subordinada firmado por la AC raíz externa: El segundo paso es enviar la CSR a la AC raíz externa para que la firme. Asegúrate de seguir las instrucciones específicas de la AC raíz externa para enviar CSR y obtener certificados firmados.
Importa el certificado de AC subordinado firmado en el servicio de AC: El último paso es subir la cadena de certificados PEM firmada con Google Cloud CLI o la consola de Google Cloud.
En la siguiente sección, se muestra cómo crear una AC subordinada a partir de una AC raíz externa.
Crea una CSR
Console
Visita el menú Seguridad > Servicio de la AC en la consola de Google Cloud.
Haz clic en la pestaña Administrador de AC.
Haz clic en Crear AC.
Selecciona un tipo de AC:
- Haz clic en CA subordinada.
- En el campo Válido para, ingresa el período durante el cual deseas que sean válidos los certificados emitidos por la AC.
- Haz clic en La AC raíz es externa.
- Elige una de las opciones disponibles para el nivel de la AC. Para obtener más información, consulta Cómo seleccionar los niveles de operación.
- En Regionalización, selecciona una ubicación de AC de la lista.
- Haz clic en Siguiente.
- En el campo Organización (O), ingresa el nombre de tu empresa.
- Opcional: En el campo Unidad organizativa (UO), ingresa la subdivisión de la empresa o la unidad de negocios.
- Opcional: En el campo Nombre del país, ingresa un código de país de dos letras.
- Opcional: En el campo Nombre del estado o provincia, ingresa el nombre de tu estado.
- Opcional: En el campo Nombre de la localidad, ingresa el nombre de tu ciudad.
- En el campo Nombre común de AC (CN), ingresa el nombre de la AC.
- En el campo ID de grupo, ingresa el nombre del grupo de AC. No puedes cambiar el pool de AC después de crearla.
- Haz clic en Siguiente.
- Elige el algoritmo de claves que mejor se adapte a tus necesidades. Para obtener información sobre cómo decidir el algoritmo de clave adecuado, consulta Elige un algoritmo de clave.
- Haz clic en Siguiente.
Los siguientes pasos son opcionales. Si omites estos pasos, se aplicará la configuración predeterminada.
- Elige si deseas usar un bucket de Cloud Storage administrado por Google o autoadministrado.
- Elige si quieres inhabilitar la publicación de las listas de revocación de certificados (CRL) y los certificados de AC en el bucket de Cloud Storage.
- Haz clic en Siguiente.
Si no seleccionas un bucket de Cloud Storage administrado por ti, el servicio de AC crea un bucket administrado por Google en la misma ubicación que la AC.
La publicación de la CRL y el certificado de la AC en un bucket de Cloud Storage está habilitada de forma predeterminada. Para inhabilitar estos parámetros de configuración, haz clic en los botones de activación.
Los siguientes pasos son opcionales.
Si deseas agregar etiquetas a la AC, haz lo siguiente:
- Haz clic en Agregar elemento.
- En el campo Clave 1, ingresa la clave de etiqueta.
- En el campo Valor 1, ingresa el valor de la etiqueta.
- Si deseas agregar otra etiqueta, haz clic en Agregar elemento. Luego, agrega la clave y el valor de la etiqueta como se mencionó en los pasos 2 y 3.
- Haz clic en Siguiente.
Revisa cuidadosamente todos los parámetros de configuración y, luego, haz clic en Crear para crear la AC.
Descarga la CSR
- En la página Autoridad certificadora, selecciona la AC que deseas activar.
- Haz clic en Activar.
En el cuadro de diálogo que se abre, haz clic en
Download CSR.
gcloud
Para crear un grupo de AC para la AC subordinada, ejecuta el siguiente comando. Para obtener más información, consulta Crea un grupo de AC.
gcloud privateca pools create SUBORDINATE_POOL_ID
Reemplaza SUBORDINATE_POOL_ID por el nombre del grupo de AC.
Para crear una AC subordinada en el grupo de AC creado, ejecuta el siguiente comando
gcloud
. El comandogcloud
también crea una CSR y la guarda en el archivo FILE_NAME.gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --create-csr --csr-output-file=FILE_NAME \ --key-algorithm="ec-p256-sha256" \ --subject="CN=Example Server TLS CA, O=Example LLC"
Reemplaza lo siguiente:
- SUBORDINATE_CA_ID: Es el identificador único de la AC subordinada.
- SUBORDINATE_POOL_ID: Es el nombre del grupo de AC.
- FILE_NAME: Es el nombre del archivo en el que se escribe la CSR codificada en PEM.
La marca
--key-algorithm
toma el algoritmo criptográfico que deseas usar para crear una clave administrada de Cloud HSM para la AC.La marca
--subject
toma el nombre X.501 del sujeto del certificado.Para obtener más información sobre el comando
gcloud privateca subordinates create
, consulta gcloud privateca subordinates create.
Cuando se crea la CSR, se muestra la siguiente sentencia:
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 la lista exhaustiva de parámetros de configuración disponibles, ejecuta el siguiente comando:
gcloud privateca subordinates create --help
Si pierdes el CSR, puedes volver a descargarlo con el siguiente comando:
gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID
Terraform
Para crear un grupo de AC y una AC subordinada en ese grupo, usa el siguiente archivo de configuración:
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 recuperar la CSR, agrega la siguiente configuración.
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 }
Ejecuta
terraform apply
.
Firma la CSR
Pasa el archivo CSR generado al miembro de tu organización responsable de la emisión de certificados y solicítale que lo firme. Los pasos específicos dependen de la configuración de tu organización.
Puedes experimentar con una AC raíz simple con los siguientes comandos de openssl
:
Shell
Configura la configuración de la nueva AC raíz.
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
Crea la nueva AC raíz.
openssl req -x509 -new -nodes -config root.conf -keyout rootCA.key \
-days 3000 -out rootCA.crt -batch
Configura las extensiones que se deben agregar al nuevo 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
Firma la CSR de la AC subordinada con esta raíz.
openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf
Concatena toda la cadena de certificados en un solo archivo.
cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt
Sube el certificado firmado
Para activar una AC subordinada con un certificado firmado, haz lo siguiente:
Console
Ve a la página Certificate Authority Service en la consola de Google Cloud.
Haz clic en la pestaña Administrador de AC.
En Autoridades certificadoras, elige la AC subordinada que creaste.
Haz clic en
Activar.En el diálogo que se abre, haz clic en Download CSR para descargar el archivo de CSR con codificación PEM que la AC emisora puede firmar.
Haz clic en Siguiente.
En el campo Subir cadena de certificados, haz clic en Explorar.
Sube el archivo de certificado firmado con la extensión
.crt
.Haz clic en Activar.
gcloud
gcloud privateca subordinates activate SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--pem-chain ./chain.crt
Reemplaza lo siguiente:
- SUBORDINATE_CA_ID: Es el identificador único de la AC subordinada que deseas activar.
- SUBORDINATE_POOL_ID: Es el nombre del grupo de AC que contiene la AC subordinada.
La marca --pem-chain
es obligatoria. Esta marca toma el archivo que contiene la lista de certificados con codificación PEM. La lista de certificados comienza con el certificado de la AC actual y termina con el certificado de la AC raíz.
Para obtener más información sobre el comando gcloud privateca subordinates activate
, consulta gcloud privateca subordinates activate.
Cuando se sube el certificado firmado, se muestra la siguiente sentencia:
Activated certificate authority [SUBORDINATE_CA_ID].
Terraform
- Guarda el certificado de AC firmado de forma local como
subordinate.crt
. - Guarda los certificados de la AC del firmante de forma local como
rootCA.crt
. - Quita la configuración para recuperar la CSR que se menciona en el primer paso, ya que intenta recuperar la CSR, lo que no se permite después de la activación de la AC.
Actualiza la configuración de la AC subordinada con los siguientes campos y ejecuta
terraform apply
.pem_ca_certificate = file("subordinate.crt") subordinate_config { pem_issuer_chain { pem_certificates = [file("rootCA.crt")] } }
Si la cadena de emisores incluye más de una AC, especifica el valor como
[file("intermediateCA.cert"), file("rootCA.crt")]
.
¿Qué sigue?
- Obtén más información para solicitar certificados.
- Obtén información sobre las plantillas y las políticas de emisión.