En esta página, se describe cómo configurar una instancia para usar SSL/TLS. Obtén más información sobre el uso de SSL/TLS con Cloud SQL.
Descripción general
Cloud SQL crea un certificado de servidor (server-ca.pem) automáticamente cuando creas tu instancia.
Para usar SSL/TLS, debes crear un certificado de cliente y descargar los certificados en tu máquina anfitrión de cliente MySQL.Si planeas conectarte mediante SSL/TLS, te recomendamos que requieras que todas las conexiones usen SSL/TLS.
Requiere SSL/TLS
Cuando el uso obligatorio de SSL/TLS está habilitado, puedes usar el proxy de Cloud SQL o los certificados SSL/TLS para conectarte a la instancia de Cloud SQL. Si no requieres el uso de SSL/TLS, los clientes sin un certificado válido pueden conectarse.
Para habilitar el uso obligatorio de SSL/TLS, sigue estos pasos:
Console
- Ve a la página Instancias de Cloud SQL en Google Cloud Console.
Ir a la página Instancias de Cloud SQL - Haz clic en el nombre de la instancia para abrir la página Detalles de la instancia.
- Haz clic en el vínculo Conexiones en el panel de navegación izquierdo.
- Desplázate hacia abajo hasta la sección Conexiones SSL.
- Haz clic en Solo permitir conexiones SSL.
gcloud
gcloud sql instances patch [INSTANCE_NAME] --require-ssl
REST v1beta4
-
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- instance-id: El ID de la instancia
Método HTTP y URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "ipConfiguration": {"requireSsl": "true"} } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Certificados de servidor
Cloud SQL crea un certificado de servidor automáticamente cuando se crea la instancia. Siempre que el certificado del servidor sea válido, no es necesario que lo administres de forma activa. Sin embargo, el certificado tiene una fecha de vencimiento de 10 años. Después de esa fecha, ya no será válido, y los clientes no podrán establecer una conexión segura a la instancia mediante ese certificado. Recibirás una notificación cuando el certificado del servidor esté por vencer.
En la consola, puedes obtener información sobre el certificado del servidor, como su fecha de creación y su fecha de vencimiento, o crear uno nuevo de forma manual.
Console
- Ve a la página Instancias de Cloud SQL en Google Cloud Console.
- Haz clic en el nombre de la instancia para abrir la página Detalles de la instancia.
- Haz clic en el vínculo Conexiones en el panel de navegación izquierdo.
- Desplázate hacia abajo hasta la sección Configurar certificados de servidor SSL.
Puedes ver la fecha de vencimiento de tu certificado de servidor en la tabla.
Certificados de clientes
Crea un nuevo certificado de cliente
Puedes crear hasta 10 certificados de cliente por instancia. Si pierdes la clave privada de un certificado, debes crear una nueva; la clave privada no se puede recuperar. De forma predeterminada, el certificado de cliente tiene una fecha de vencimiento de 10 años. No recibes notificaciones cuando los certificados de cliente se están acercando al vencimiento.
Console
- Ve a la página Instancias de Cloud SQL en Google Cloud Console.
- Haz clic en el nombre de la instancia para abrir la página Detalles de la instancia.
- Haz clic en el vínculo Conexiones en el panel de navegación izquierdo.
- Desplázate hacia abajo hasta la sección Configurar certificados de cliente SSL.
- Haz clic en Crear un certificado de cliente.
- En el cuadro de diálogo Crear un certificado de cliente, agrega un nombre único.
- Haz clic en Crear.
- En la primera sección del cuadro de diálogo Certificado SSL nuevo, haz clic en Descargar client-key.pem para descargar la clave privada en un archivo llamado
client-key.pem
. - En la segunda sección, haz clic en Descargar client-cert.pem para descargar el certificado de cliente en un archivo llamado
client-cert.pem
. - En la tercera sección, haz clic en Descargar server-ca.pem para descargar el certificado de servidor en un archivo llamado
server-ca.pem
. - Haz clic en Cerrar.
gcloud
Crea un certificado de cliente mediante el comando
ssl client-certs create
:gcloud sql ssl client-certs create [CERT_NAME] client-key.pem --instance=[INSTANCE_NAME]
Recupera la clave pública del certificado que acabas de crear y cópiala en el archivo
client-cert.pem
con el comandossl client-certs describe
:gcloud sql ssl client-certs describe [CERT_NAME] --instance=[INSTANCE_NAME] --format="value(cert)" > client-cert.pem
Copia el certificado de servidor en el archivo
server-ca.pem
con el comandoinstances describe
:gcloud sql instances describe [INSTANCE_NAME] --format="value(serverCaCert.cert)" > server-ca.pem
-
gcloud sql instances restart [INSTANCE_NAME]
REST v1beta4
Crea un certificado SSL/TLS y asígnale un nombre único para esta instancia:
Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-id: El ID del proyecto
- instance-id: El ID de la instancia
- client-cert-name: El nombre del certificado de cliente
Método HTTP y URL:
POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts
Cuerpo JSON de la solicitud:
{ "commonName" : "client-cert-name" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
- Copia todo el contenido del certificado que está entre comillas en la respuesta (pero no copies las comillas) en los archivos locales, como se indica a continuación:
- Copia
serverCaCert.cert
enserver-ca.pem
. - Copia
clientCert.cert
enclient-cert.pem
. - Copia
certPrivateKey
enclient-key.pem
.
- Copia
-
Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-id: El ID del proyecto
- instance-id: El ID de la instancia
- activation-policy: La política de activación es ALWAYS o NEVER.
Método HTTP y URL:
POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restart
Cuerpo JSON de la solicitud:
{ "settings": { "activationPolicy": "activation-policy" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "RESTART", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
En este punto tendrás los siguientes elementos:
- Un certificado de servidor guardado como
server-ca.pem
- Un certificado de clave pública de cliente guardado como
client-cert.pem
- Una clave privada de cliente guardada como
client-key.pem
Según la herramienta que uses para conectarte, estos tres elementos tendrán especificaciones diferentes. Por ejemplo, cuando te conectas con el cliente MySQL, estos tres archivos son los valores para las opciones de comando --ssl-ca
, --ssl-cert
y --ssl-key
, respectivamente. Si deseas ver un ejemplo de conexión mediante el cliente MySQL y SSL/TLS, consulta Conéctate con un cliente MySQL.
¿Qué sigue?
- Conéctate mediante SSL/TLS a la instancia de Cloud SQL.
- Administra SSL/TLS en la instancia de Cloud SQL.
Obtén más información sobre cómo MySQL usa SSL/TLS.