Gestionar certificados SSL/TLS

En esta página se describe cómo gestionar los certificados de la autoridad de certificación (CA) de cliente y de servidor.

Gestionar certificados de cliente

Sigue estos procedimientos para gestionar los certificados de cliente en Cloud SQL.

Recuperar un certificado de cliente

Puedes acceder a la parte de la clave pública de un certificado de cliente. En cambio, no puedes acceder a la clave privada. Si has perdido la clave privada, tendrás que crear un certificado nuevo.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. En Gestionar certificados de cliente, haz clic en el nombre de un certificado.
  6. Se abre la página Certificado de cliente SSL y se muestra el certificado de cliente (client-cert.pem) con un enlace para descargar el certificado.

gcloud

Obtén la clave pública del certificado de cliente con el comando ssl client-certs describe:

gcloud sql ssl client-certs describe CERT_NAME \
--instance=INSTANCE_NAME \
--format="value(cert)" > client-cert.pem

REST v1

  1. Obtén una lista de los certificados en la instancia para obtener la huella digital del certificado al que quieres acceder:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Registra el campo sha1Fingerprint del certificado que quieras obtener. No incluyas las comillas.

  2. Accede al certificado:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.
    • sha1FingerPrint: huella digital SHA-1 del certificado

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Copia todos los datos del certificado que estén entre comillas en un archivo, por ejemplo, client-cert.pem. No copies las comillas.

REST v1beta4

  1. Obtén una lista de los certificados en la instancia para obtener la huella digital del certificado al que quieres acceder:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Registra el campo sha1Fingerprint del certificado que quieras obtener. No incluyas las comillas.

  2. Accede al certificado:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.
    • sha1FingerPrint: huella digital SHA-1 del certificado

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Copia todos los datos del certificado que estén entre comillas en un archivo, por ejemplo, client-cert.pem. No copies las comillas.

Eliminar un certificado de cliente

Cuando eliminas un certificado de cliente, el servidor de la base de datos se actualiza y no es necesario reiniciarlo.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. En Gestionar certificados de cliente, busca el certificado que quieras eliminar y haz clic en Eliminar..
  6. En el panel Eliminar certificado de cliente, haz clic en Aceptar.

gcloud

Elimina el certificado de cliente con el comando ssl client-certs delete:

gcloud sql ssl client-certs delete CERT_NAME \
--instance=INSTANCE_NAME

REST v1

  1. Obtén una lista de los certificados en la instancia para ver la huella digital del certificado que quieres eliminar:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Anota el campo sha1Fingerprint del certificado que quieras eliminar. No incluyas las comillas.

  2. Elimina el certificado:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.
    • sha1FingerPrint: huella digital SHA-1 del certificado

    Método HTTP y URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

  1. Obtén una lista de los certificados en la instancia para ver la huella digital del certificado que quieres eliminar:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Anota el campo sha1Fingerprint del certificado que quieras eliminar. No incluyas las comillas.

  2. Elimina el certificado:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.
    • sha1FingerPrint: huella digital SHA-1 del certificado

    Método HTTP y URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

Gestionar certificados AC de servidor (AC por instancia)

En esta sección se describe cómo gestionar los certificados de CA de servidor que crea Cloud SQL internamente. Este es el modo de AC del servidor predeterminado en Cloud SQL. En esta jerarquía de autoridades de certificación, Cloud SQL crea una AC de servidor para cada instancia.

Rotar certificados AC del servidor

Si has recibido un aviso sobre el vencimiento de tus certificados o quieres iniciar una rotación, sigue estos pasos para completarla. Antes de iniciar la rotación, debes tener una nueva AC de servidor en la instancia. Si ya se ha creado una nueva CA de servidor, puedes saltarte el primer paso del procedimiento siguiente.

  1. Crea una nueva AC de servidor.
  2. Descarga la información del nuevo certificado AC del servidor.
  3. Actualiza tus clientes para que usen la nueva información del certificado de AC del servidor.
  4. Completa la rotación, que mueve el certificado activo a la ranura "anterior" y actualiza el certificado recién añadido para que sea el certificado activo.

Consola

Descarga el nuevo certificado de AC del servidor, codificado como archivo PEM, en tu entorno local:

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. Haz clic en Gestionar certificados para desplegarlo.
  6. Selecciona Rotar certificado de AC.

    Si no hay ningún certificado apto, la opción de rotación no estará disponible. Debes crear un certificado AC del servidor.

  7. Haz clic en Descargar certificados.

Actualiza todos tus clientes MySQL para que usen la nueva información. Para ello, copia el archivo descargado en los hosts de tus clientes y sustituye el archivo server-ca.pem.

Una vez que haya actualizado sus clientes, complete la rotación:

  1. Vuelve a la pestaña Seguridad.
  2. Haz clic en Gestionar certificados para desplegarlo.
  3. Selecciona Rotar certificado de AC.
  4. Confirma que tus clientes se conectan correctamente.
  5. Si algún cliente no se conecta con el certificado recién renovado, puedes seleccionar Restaurar certificado de CA para restaurar la configuración anterior.

gcloud

  1. Crea un certificado AC del servidor:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE
  2. Descarga la información del certificado en un archivo PEM local:
    gcloud sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
  3. Actualiza todos tus clientes para que usen la nueva información copiando el archivo descargado en los equipos host de tus clientes y sustituyendo los archivos server-ca.pem que ya tengas.
  4. Una vez que haya actualizado sus clientes, complete la rotación:
    gcloud sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. Confirma que tus clientes se conectan correctamente.
  6. Si algún cliente no se conecta con el certificado recién rotado, puedes restaurar la configuración anterior.

REST v1

  1. Descarga los certificados AC de tu servidor:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Completa la rotación:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

  1. Descarga los certificados AC de tu servidor:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Completa la rotación:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

Si recibes un error al intentar rotar un certificado que dice No upcoming/previous Server CA Certificate exists, comprueba que estás ejecutando el comando en una instancia que usa la jerarquía de CA por instancia. Para ver qué jerarquía de CA está configurada en una instancia de Cloud SQL, usa el comando gcloud sql instances describe. Para obtener más información, consulta Ver información de la instancia.

Restaurar una operación de rotación de certificados

Una vez que hayas completado la rotación de un certificado, todos tus clientes deberán usar el nuevo certificado para conectarse a tu instancia de Cloud SQL. Si los clientes no se actualizan correctamente para usar la nueva información del certificado, no podrán conectarse a tu instancia mediante SSL/TLS. Si esto ocurre, puedes restaurar la configuración del certificado anterior.

Una operación de reversión mueve el certificado activo a la ranura "próximo" (y sustituye cualquier certificado "próximo"). El certificado "anterior" se convierte en el certificado activo, lo que hace que la configuración de tu certificado vuelva al estado que tenía antes de completar la rotación.

Para volver a la configuración de certificado anterior, haz lo siguiente:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. Haz clic en Gestionar certificados para desplegarlo.
  6. Selecciona Restaurar certificado de AC.

    Si no hay ningún certificado apto, la opción de revertir no estará disponible. De lo contrario, la reversión se completará al cabo de unos segundos.

gcloud

gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. Descarga los certificados AC de tu servidor:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Copia el campo sha1Fingerprint de la versión a la que quieras volver.

    Busca la versión con un valor de createTime inmediatamente anterior a la versión con el valor de sha1Fingerprint que se muestra como activeVersion.

  3. Restaurar la rotación:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Cuerpo JSON de la solicitud:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

  1. Descarga los certificados AC de tu servidor:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Copia el campo sha1Fingerprint de la versión a la que quieras volver.

    Busca la versión con un valor de createTime inmediatamente anterior a la versión con el valor de sha1Fingerprint que se muestra como activeVersion.

  3. Restaurar la rotación:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Cuerpo JSON de la solicitud:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

Si recibes un error al intentar revertir una rotación de la CA de un certificado que dice No upcoming/previous Server CA Certificate exists, verifica que estás ejecutando el comando en una instancia que usa la jerarquía de CAs por instancia. Para ver qué jerarquía de CA está configurada en una instancia de Cloud SQL, usa el comando gcloud sql instances describe. Para obtener más información, consulta Ver información de la instancia.

Iniciar una rotación

No es necesario que esperes el correo de Cloud SQL para iniciar una rotación. Puedes empezar una en cualquier momento. Cuando inicias una rotación, se crea un nuevo certificado y se coloca en el espacio "Próximo". Si ya hay un certificado en la ranura "Próximos" en el momento de tu solicitud, se eliminará. Solo puede haber un certificado próximo.

Para iniciar una rotación:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. Haz clic en Gestionar certificados para desplegarlo.
  6. Haz clic en Crear certificado de CA.
  7. Selecciona Rotar certificado de AC.

    Si no hay ningún certificado apto, la opción de rotación no estará disponible.

  8. Completa la rotación tal como se describe en Rotar certificados AC de servidor.

gcloud

  1. Inicia la rotación:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. Completa la rotación tal como se describe en Rotar certificados AC de servidor.

REST v1

  1. Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Completa la rotación tal como se describe en Rotar certificados AC de servidor.

REST v1beta4

  1. Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Completa la rotación tal como se describe en Rotar certificados AC de servidor.

Obtener información sobre un certificado AC de servidor

Puedes obtener información sobre tu certificado de CA del servidor, como cuándo caduca o qué nivel de cifrado proporciona.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.

    En Gestionar certificados AC de servidor, puedes ver la fecha de vencimiento de tu certificado AC de servidor en la tabla.

    Para ver el tipo de certificado, usa el comando gcloud sql ssl server-ca-certs list --instance=INSTANCE_NAME.

gcloud

gcloud sql ssl server-ca-certs list \
--instance=INSTANCE_NAME

REST v1

Cuando describas tu instancia, podrás ver los detalles del certificado AC del servidor:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=serverCaCert

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

Cuando describas tu instancia, podrás ver los detalles del certificado de CA del servidor:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=serverCaCert

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Ver el contenido de los certificados de CA

Puedes usar openssl storeutl para ver el contenido de los certificados de CA.

Cuando ejecutas el comando sql ssl server-ca-certs list, puedes obtener varios certificados de CA de operaciones anteriores relacionadas con la rotación.

gcloud

  1. Ejecuta el siguiente comando:
    gcloud sql ssl server-ca-certs list \
      --instance=INSTANCE_NAME \
      --format='value(cert)' > temp_cert.pem

    Sustituye INSTANCE_NAME por el nombre de la instancia.

  2. Usa openssl para examinar el contenido de los certificados de AC.
  3. openssl storeutl -noout -text temp_cert.pem
       

Ver el contenido de un certificado de servidor

Puedes usar openssl s_client para ver el contenido de los certificados de servidor.

gcloud

Para ver el contenido del certificado del servidor, ejecuta el siguiente comando:

openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS:3306

Sustituye INSTANCE_IP_ADDRESS por la dirección IP de la instancia.

Notificación de vencimiento de SSL de servidor externo

  • Si el certificado de AC del servidor externo va a caducar, renueva los certificados SSL, incluido el certificado de AC del servidor de la instancia local. Este paso depende de cómo se gestione la instancia local. Los pasos pueden variar si, por ejemplo, usas un certificado de CA de servidor de RDS, un certificado de CA de servidor de Cloud SQL o un certificado de CA de servidor genérico de base de datos.
  • Si el certificado de cliente va a caducar, debes generar un nuevo certificado y una nueva clave. Esto se aplica tanto a los certificados SSL gestionados por Google Cloudcomo a los certificados autofirmados.
  • Actualiza la instancia de representación de origen de Cloud SQL con los nuevos certificados SSL.

Gestionar certificados de servidor (AC compartida)

En esta sección se describe cómo gestionar los certificados de servidor en instancias que usan ACs compartidas o ACs gestionadas por el cliente.

Para usar CAs compartidas como modo de CA de servidor de tu instancia, especifica GOOGLE_MANAGED_CAS_CA en el ajuste serverCaMode (API Cloud SQL Admin) o la marca --server-ca-mode (CLI de gcloud) al crear la instancia.

Para usar una AC gestionada por el cliente como modo de AC de servidor de tu instancia, debes especificar CUSTOMER_MANAGED_CAS_CA en el ajuste serverCaMode (API Cloud SQL Admin) o la marca --server-ca-mode (CLI de gcloud) al crear la instancia. Además, debes tener un grupo de AC y una AC válidos. Para obtener más información, consulta Usar una CA gestionada por el cliente.

Rotar certificados de servidor

Si has recibido un aviso de que tus certificados de servidor van a caducar o quieres iniciar una rotación, sigue estos pasos para completarla. Antes de iniciar la rotación, debe haber un nuevo certificado de servidor creado para la próxima rotación. Si ya se ha creado un nuevo certificado de servidor para la próxima rotación, puedes saltarte el primer paso del procedimiento siguiente.

Para rotar el certificado de servidor de tu instancia, sigue estos pasos:

  1. Si necesitas un nuevo certificado de servidor, crea uno.

  2. Si tus clientes ya confían en la CA raíz, este paso es opcional. Sin embargo, si necesita actualizar sus clientes con información de la CA del servidor, siga estos pasos:

    1. Descarga la información más reciente de la AC del servidor.
    2. Actualiza tus clientes para que usen la información más reciente de la CA del servidor.
  3. Completa la rotación moviendo el certificado activo a la ranura anterior y actualizando el nuevo certificado para que sea el activo.

Consola

Descarga la información del certificado de la AC del servidor, codificada como un archivo PEM, en tu entorno local:

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. Haz clic en Gestionar certificados para desplegarlo.
  6. Confirma que la opción Rotar certificado de servidor aparece como una opción disponible, pero no la selecciones todavía.

    Si no hay ningún certificado apto, la opción de rotación no estará disponible. Debes crear un nuevo certificado de servidor.

  7. Haz clic en Descargar certificados.

Actualiza todos tus clientes MySQL para que usen la nueva información. Para ello, copia el archivo descargado en los hosts de tus clientes y sustituye el archivo server-ca.pem.

Una vez que haya actualizado sus clientes, complete la rotación:

  1. Vuelve a la pestaña Seguridad.
  2. Haz clic en Gestionar certificados para desplegarlo.
  3. Selecciona Rotar certificado.
  4. En el cuadro de diálogo Confirm certificate rotation (Confirmar rotación de certificado), haz clic en Rotate (Rotar).
  5. Confirma que tus clientes se conectan correctamente.

    Si algún cliente no se conecta con el certificado recién rotado, puedes seleccionar Restaurar certificado para restaurar la configuración anterior.

gcloud

  1. Para crear un certificado de servidor, usa el siguiente comando:
    gcloud sql ssl server-certs create \
    --instance=INSTANCE
  2. Sustituye INSTANCE por el nombre de la instancia.
  3. Asegúrate de que estás usando el paquete de CA más reciente. Si no usas el paquete de AC más reciente, ejecuta el siguiente comando para descargar la información de la AC del servidor más reciente de la instancia en un archivo PEM local:
    gcloud sql ssl server-certs list \
    --format="value(ca_cert.cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/server-ca.pem

    También puedes descargar los paquetes de ACs de la tabla de paquetes de certificados de ACs raíz y regionales de esta página.

    A continuación, actualiza todos tus clientes para que usen la nueva información de la CA del servidor copiando el archivo descargado en los equipos host de los clientes y sustituyendo los archivos server-ca.pem.

  4. Después de actualizar todos tus clientes (si es necesario), completa la rotación:
    gcloud sql ssl server-certs rotate \
    --instance=INSTANCE_NAME
          
  5. Confirma que tus clientes se conectan correctamente.

    Si algún cliente no se conecta con el certificado de servidor recién rotado, restaura la configuración anterior.

REST v1

  1. Crea un certificado de servidor.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Si necesitas descargar información sobre el certificado de AC del servidor, puedes usar el siguiente comando.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Completa la rotación.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

  1. Crea un certificado de servidor.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Si necesitas descargar información sobre el certificado de AC del servidor, puedes usar el siguiente comando.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Completa la rotación.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

Restaurar una rotación de certificados

Una vez que hayas completado la rotación del certificado de servidor, todos tus clientes deberán usar el nuevo certificado para conectarse a tu instancia de Cloud SQL. Si los clientes no se actualizan correctamente para usar la nueva información del certificado, no podrán conectarse a tu instancia mediante SSL/TLS. Si esto ocurre, puedes volver a la configuración del certificado anterior.

Una operación de reversión mueve el certificado activo a la ranura "Próximo", que sustituye a cualquier certificado "Próximo". El certificado "anterior" se convierte en el certificado activo y la configuración del certificado vuelve al estado anterior a la rotación.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Selecciona la pestaña Seguridad.
  5. Haz clic en Gestionar certificados para desplegarlo.
  6. Selecciona Restaurar certificado de servidor.

    Si no hay ningún certificado apto, la opción de revertir no estará disponible.

  7. En el cuadro de diálogo Confirmar reversión del certificado, selecciona Revertir.

    La reversión puede tardar unos segundos en completarse.

gcloud

gcloud sql ssl server-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. Enumera tus certificados de servidor.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Copia el campo sha1Fingerprint de la versión a la que quieras volver.

    Busca la versión con un valor de createTime inmediatamente anterior a la versión con el valor de sha1Fingerprint que se muestra como activeVersion.

  3. Restaurar la rotación.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    Cuerpo JSON de la solicitud:

    {
      "rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

  1. Enumera tus certificados de servidor.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Copia el campo sha1Fingerprint de la versión a la que quieras volver.

    Busca la versión con un valor de createTime inmediatamente anterior a la versión con el valor de sha1Fingerprint que se muestra como activeVersion.

  3. Restaurar la rotación.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID del proyecto
    • INSTANCE_ID: el ID de instancia

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    Cuerpo JSON de la solicitud:

    {
      "rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

Ver el contenido de los certificados de CA

Puedes usar la utilidad openssl storeutl para ver el contenido de los certificados de AC.

Cuando ejecutas el comando sql ssl server-certs list, siempre obtienes varios certificados de CA debido a la cadena de confianza. También es posible que obtengas varios certificados de CA de operaciones anteriores relacionadas con la rotación.

gcloud

  1. Ejecuta el siguiente comando:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(cert)' > temp_cert.pem

    Sustituye INSTANCE_NAME por el nombre de la instancia.

  2. Usa openssl para examinar el contenido de los certificados de AC.
  3. openssl storeutl -noout -text temp_cert.pem
       

Ver el contenido de un certificado de servidor

Puedes usar las utilidades openssl y el comando sql ssl server-certs list para ver el contenido de un certificado de servidor.

Cuando ejecutas el comando de la CLI de gcloud, siempre obtienes varios certificados de AC debido a la cadena de confianza. También es posible que tengas varios certificados de CA de operaciones anteriores relacionadas con la rotación.

gcloud

Usar solo openssl s_client:

openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS:3306

Sustituye INSTANCE_IP_ADDRESS por la dirección IP de la instancia.

Usa gcloud CLI y openssl storeutl:

  1. Ejecuta el siguiente comando:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(ssl_cert.cert)' > temp_cert.pem

    Sustituye INSTANCE_NAME por el nombre de la instancia.

  2. Usa openssl para examinar el contenido de los certificados de servidor.
  3. openssl storeutl -noout -text temp_cert.pem
       

Descargar paquetes de certificados de AC raíz y regional para una AC compartida

Si usas una configuración de AC compartida gestionada por Google, puedes descargar los paquetes de certificados de AC raíz y regional de la siguiente tabla.

Estos paquetes de certificados no se aplican a las instancias que usan las opciones de CA por instancia o gestionada por el cliente.

Nombre de la región Ubicación Paquete de certificados
Global
Autoridad de certificación para todas las regiones Todas las ubicaciones global.pem
Asia
asia-east1 Taiwán asia-east1.pem
asia-east2 Hong Kong asia-east2.pem
asia-northeast1 Tokio asia-northeast1.pem
asia-northeast2 Osaka asia-northeast2.pem
asia-northeast3 Seúl asia-northeast3.pem
asia-south1 Bombay asia-south1.pem
asia-south2 Deli asia-south2.pem
asia-southeast1 Singapur asia-southeast1.pem
asia-southeast2 Yakarta asia-southeast2.pem
África
africa-south1 Johannesburgo africa-south1.pem
Australia
australia-southeast1 Sídney australia-southeast1.pem
australia-southeast2 Melbourne australia-southeast2.pem
Europa
europe-central2 Varsovia europe-central2.pem
europe-north1 Finlandia europe-north1.pem
europe-north2 Estocolmo europe-north2.pem
europe-southwest1 Madrid europe-southwest1.pem
europe-west1 Bélgica europe-west1.pem
europe-west2 Londres europe-west2.pem
europe-west3 Fráncfort europe-west3.pem
europe-west4 Países Bajos europe-west4.pem
europe-west6 Zúrich europe-west6.pem
europe-west8 Milán europe-west8.pem
europe-west9 París europe-west9.pem
europe-west10 Berlín europe-west10.pem
europe-west12 Turín europe-west12.pem
Oriente Medio
me-central1 Doha me-central1.pem
me-central2 Dammam me-central2.pem
me-west1 Tel Aviv me-west1.pem
Norteamérica
northamerica-northeast1 Montreal northamerica-northeast1.pem
northamerica-northeast2 Toronto northamerica-northeast2.pem
northamerica-south1 México northamerica-south1.pem
us-central1 Iowa us-central1.pem
us-east1 Carolina del Sur us-east1.pem
us-east4 Norte de Virginia us-east4.pem
us-east5 Columbus us-east5.pem
us-south1 Dallas us-south1.pem
us-west1 Oregón us-west1.pem
us-west2 Los Ángeles us-west2.pem
us-west3 Salt Lake City us-west3.pem
us-west4 Las Vegas us-west4.pem
Sudamérica
southamerica-east1 São Paulo southamerica-east1.pem
southamerica-west1 Santiago southamerica-west1.pem

Restablecer la configuración de SSL/TLS

Puedes restablecer por completo tu configuración de SSL/TLS.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Ve a la sección Restablecer configuración de SSL.
  5. Haz clic en Restablecer configuración de SSL.

gcloud

  1. Actualiza el certificado:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
  2. gcloud sql instances restart INSTANCE_NAME
  3. Crea nuevos certificados de cliente.

REST v1beta4

  1. Actualiza el certificado:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • project-id: el ID del proyecto
    • instance-id: el ID de instancia.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    Para enviar tu solicitud, despliega una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Crea nuevos certificados de cliente.

Siguientes pasos