En esta página, se describe cómo administrar los certificados de la autoridad certificadora (AC) de cliente y servidor.
Administra certificados de cliente
Usa los siguientes procedimientos para administrar certificados de cliente en Cloud SQL.
Recupera un certificado de cliente
Puedes recuperar la parte de la clave pública de un certificado de cliente. Sin embargo, no puedes recuperar la clave privada. Si perdiste tu clave privada, tendrás que crear un certificado nuevo.
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
En Administra certificados de cliente , haz clic en el nombre de un certificado.
Se abrirá la página Certificado de cliente SSL ,
en la que se mostrará el certificado de cliente (client-cert.pem
) con
un vínculo para descargar el certificado.
gcloud
Recupera 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
Enumera los certificados en la instancia para obtener la huella digital del certificado que deseas recuperar:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra el campo sha1Fingerprint
del certificado que deseas recuperar. No incluyas las comillas.
Recupera el certificado:
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
sha1FingerPrint : El sha1FingerPrint 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
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
Enumera los certificados en la instancia para obtener la huella digital del certificado que deseas recuperar:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra el campo sha1Fingerprint
del certificado que deseas recuperar. No incluyas las comillas.
Recupera el certificado:
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
sha1FingerPrint : El sha1FingerPrint 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
Copia todos los datos del certificado que están entre comillas en un archivo, por ejemplo, client-cert.pem
. No copies
las comillas.
Borra un certificado de cliente
Cuando borras un certificado de cliente, el servidor de la base de datos se actualiza y no es necesario reiniciarlo.
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
En Administrar certificados de cliente , busca el certificado que deseas
borrar y haz clic en .
En el panel Borrar certificado de cliente , haz clic en Aceptar .
gcloud
Borra el certificado de cliente mediante el comando ssl client-certs delete :
gcloud sql ssl client-certs delete CERT_NAME \
--instance= INSTANCE_NAME
REST v1
Enumera los certificados en la instancia para obtener la huella digital del certificado que deseas borrar:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra el campo sha1Fingerprint
del certificado que deseas borrar. No incluyas las comillas.
Borra el certificado:
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
sha1FingerPrint : El sha1FingerPrint 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Enumera los certificados en la instancia para obtener la huella digital del certificado que deseas borrar:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra el campo sha1Fingerprint
del certificado que deseas borrar. No incluyas las comillas.
Borra el certificado:
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
sha1FingerPrint : El sha1FingerPrint 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Administra los certificados de la AC del servidor (CA por instancia)
En esta sección, se describe cómo administrar los certificados de la AC del servidor que Cloud SQL crea de forma interna. Este es el modo de CA del servidor predeterminado en Cloud SQL. En esta jerarquía de autoridades certificadoras, Cloud SQL crea una CA del servidor para cada instancia.
Rota los certificados de la AC del servidor
Si recibiste una notificación sobre el vencimiento de los certificados o quieres iniciar una rotación, sigue los pasos que se describen a continuación para completar la rotación. Antes de comenzar la rotación, debes tener una nueva CA del servidor en la instancia. Si ya se creó una nueva CA del servidor, puedes omitir el primer paso del siguiente procedimiento.
Crea una nueva CA del servidor.
Descarga la información del nuevo certificado de la AC del servidor:
Actualiza los clientes que usan la información del nuevo certificado de la AC del servidor.
Completa la rotación, que traslada el certificado activo a la
ranura “anterior” y actualiza el certificado que se agregó recientemente para que sea el
certificado activo.
Después de rotar el certificado SSL, las conexiones del proxy de autenticación de Cloud SQL y de App Engine recibirán de forma automática un certificado nuevo cuando se conecten.
Console
Descarga el nuevo certificado de la CA del servidor, codificado como un archivo PEM,
en tu entorno local:
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Selecciona Rotate CA certificate .
Si no hay certificados aptos, la opción
de rotación no estará disponible. Debes crear un nuevo certificado de CA del servidor .
Haz clic en Descargar certificados .
Actualiza todos tus clientes de PostgreSQL a fin de usar la información nueva. Para ello, copia el archivo descargado en las máquinas anfitrionas de cliente y reemplaza el archivo server-ca.pem
existente.
Una vez que actualizaste los clientes, completa la rotación.
Regresa a la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Selecciona Rotate CA certificate .
Confirma que tus clientes se conectan correctamente.
Si alguno de los clientes no se conecta a través del certificado que se acaba de rotar,
puedes hacer clic en Rollback CA certificate para
revertirlo a la configuración anterior.
gcloud
Crea un certificado de la AC del servidor:
gcloud sql ssl server-ca-certs create \
--instance=INSTANCE
Descarga la información del certificado a un archivo PEM local:
gcloud sql ssl server-ca-certs list \
--format="value(cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /FILE_NAME .pem
Actualiza todos los clientes a fin de usar la información nueva. Para ello, copia el archivo descargado en las máquinas anfitrionas de cliente y reemplaza los archivos server-ca.pem existentes.
Una vez que actualizaste los clientes, completa la rotación.
gcloud sql ssl server-ca-certs rotate \
--instance=INSTANCE_NAME
Confirma que tus clientes se conectan correctamente.
Si algún cliente no se puede conectar a través del certificado que se acaba de rotar,
puedes revertirlo a la configuración anterior.
REST v1
Descarga los certificados de la AC del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Completa la rotación:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Descarga los certificados de la AC del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Completa la rotación:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Si recibes un error cuando intentas rotar un certificado que dice No upcoming/previous Server CA Certificate exists
, verifica que estés ejecutando el comando en una instancia que use la jerarquía de CA por instancia.
Puedes ver qué jerarquía de CA está configurada para una instancia de Cloud SQL con el comando gcloud sql instances describe
.
Para obtener más información, consulta Visualiza la información de la instancia .
Revierte una operación de rotación de un certificado
Una vez que completas una rotación de certificado, todos tus clientes deben usar el certificado nuevo para conectarse a tu instancia de Cloud SQL. Si los clientes
no se actualizan correctamente para que usen la información del certificado nuevo, no pueden
conectarse con SSL/TLS a tu instancia. Si esto sucede, puedes
revertir a la configuración anterior del certificado.
Una operación de reversión mueve el certificado activo a la ranura
"próximo" (para reemplazar cualquier "próximo" certificado). El certificado
"anterior" se convierte en el certificado activo y la configuración
del certificado vuelve al estado que tenía antes de que completaras
la rotación.
Nota : La reversión de certificados está disponible solo hasta la fecha de vencimiento del certificado anterior. Para revertir a la configuración anterior de certificado, realiza los siguientes pasos:
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Selecciona Rollback CA certificate . Si no hay certificados aptos,
la opción de reversión no estará disponible. De lo contrario, la reversión se completará después de unos segundos.
gcloud
gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
REST v1
Descarga los certificados de la AC del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Copia el campo sha1Fingerprint
de la versión a la que quieres revertir.
Busca la versión que tenga un valor createTime inmediatamente anterior a la versión que tiene el valor sha1Fingerprint que se muestra como activeVersion
.
Revierte la rotación:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Descarga los certificados de la AC del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Copia el campo sha1Fingerprint
de la versión a la que quieres revertir.
Busca la versión que tenga un valor createTime inmediatamente anterior a la versión que tiene el valor sha1Fingerprint que se muestra como activeVersion
.
Revierte la rotación:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Si recibes un error cuando intentas revertir una rotación de la CA del certificado que dice No upcoming/previous Server CA Certificate exists
, verifica que estés ejecutando el comando en una instancia que use la jerarquía de CA por instancia.
Puedes ver qué jerarquía de CA está configurada para una instancia de Cloud SQL con el comando gcloud sql instances describe
.
Para obtener más información, consulta Visualiza la información de la instancia .
Inicia una rotación
No es necesario que esperes hasta recibir el correo electrónico de Cloud SQL para iniciar una rotación.
Puedes hacerlo en cualquier momento. Cuando inicias una rotación, se crea un certificado nuevo que se posiciona en la ranura "próximo". Si ya hay un certificado en la
ranura "próximo" en el momento de la solicitud, ese certificado se borrará.
Solo puede haber un certificado próximo.
Para iniciar la rotación, realiza los siguientes pasos:
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Haz clic en Create new CA certificate .
Selecciona Rotate CA certificate .
Si no hay certificados aptos,
la opción de rotación no estará disponible.
Completa la rotación como se describe en
Rota los certificados de la AC del servidor .
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Completa la rotación como se describe en
Rota los certificados de la AC del servidor .
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 : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Completa la rotación como se describe en
Rota los certificados de la AC del servidor .
Obtén información acerca un certificado de la AC del servidor
Puedes obtener información sobre tu certificado de la AC del servidor, por ejemplo, la fecha de vencimiento
o el nivel de encriptación que proporciona.
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
En Manage server CA certificates , puedes ver la fecha de vencimiento
de tu certificado de la AC del 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 describes tu instancia, puedes ver los detalles sobre el certificado de la AC
del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"serverCaCert":
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value -",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
}
}
REST v1beta4
Cuando describes tu instancia, puedes ver los detalles sobre el certificado de la AC
del servidor:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la 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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"serverCaCert":
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value -",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
}
}
Cómo 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 , es posible que obtengas varios certificados de CA de operaciones anteriores relacionadas con la rotación.
gcloud
Ejecuta el siguiente comando:
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Reemplaza INSTANCE_NAME por el nombre de la instancia.
Usa openssl
para examinar el contenido de los certificados de la CA.
openssl storeutl -noout -text temp_cert.pem
Visualiza 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 postgres -connect INSTANCE_IP_ADDRESS :5432
Reemplaza INSTANCE_IP_ADDRESS por la dirección IP de la instancia.
Notificación de vencimiento del certificado SSL del servidor externo
Si el certificado de CA del servidor externo está por vencer, rota los certificados SSL , incluido el certificado de CA del servidor en la instancia local. Este paso depende de cómo se administre la instancia local. Los pasos pueden variar si, por ejemplo, usas un certificado de CA del servidor de RDS, un certificado de CA del servidor de Cloud SQL o un certificado de CA del servidor genérico de la base de datos.
Si el certificado de cliente está por vencer, deberás generar un nuevo certificado y una nueva clave. Esto se aplica a los certificados SSL administrados por Google Cloudy a los certificados autofirmados.
Actualiza la instancia de representación de origen de Cloud SQL con los nuevos certificados SSL.
Administra certificados de servidor (CA compartida)
En esta sección, se describe cómo administrar los certificados de servidor en instancias que usan AC compartidas o AC administradas por el cliente.
Puedes habilitar el uso de entidades certificadoras compartidas como el modo de CA del servidor para tu instancia. Para ello, especifica GOOGLE_MANAGED_CAS_CA
para el parámetro de configuración serverCaMode
(API de Cloud SQL Admin) o la marca --server-ca-mode
(gcloud CLI ) cuando crees tu instancia .
Para usar una AC administrada por el cliente como el modo de AC del servidor para tu instancia, debes especificar CUSTOMER_MANAGED_CAS_CA
para el parámetro de configuración serverCaMode
(API de Cloud SQL Admin) o la marca --server-ca-mode
(CLI de gcloud ) cuando crees tu instancia , y debes tener un grupo de AC y una AC válidos. Para obtener más información, consulta Usa una CA administrada por el cliente .
Rota certificados de servidor
Si recibiste una notificación sobre el vencimiento de los certificados del servidor o quieres iniciar una rotación, sigue los pasos que se describen a continuación para completar la rotación.
Antes de iniciar la rotación, se debe crear un nuevo certificado de servidor para la rotación próxima. Si ya se creó un certificado de servidor nuevo para la próxima rotación, puedes omitir el primer paso del siguiente procedimiento.
Para rotar el certificado del servidor en tu instancia, sigue estos pasos:
Si necesitas un certificado de servidor nuevo, crea uno .
Si tus clientes ya confían en la CA raíz, este paso es opcional. Sin embargo, si necesitas actualizar tus clientes con la información de la CA del servidor, haz lo siguiente:
Descarga la información más reciente de la CA del servidor.
Actualiza los clientes para que usen la información más reciente de la CA del servidor.
Completa la rotación trasladando el certificado activo a la ranura anterior y actualizando el certificado nuevo para que sea el certificado activo.
Console
Descarga la información del certificado de la CA del servidor, codificada como un archivo PEM, en tu entorno local:
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Confirma que la opción Rotar certificado del servidor aparezca como una opción disponible. Sin embargo, no la selecciones aún.
Si no hay certificados aptos, la opción
de rotación no estará disponible. Debes crear un certificado de servidor nuevo.
Haz clic en Descargar certificados .
Actualiza todos tus clientes de PostgreSQL a fin de usar la información nueva. Para ello, copia el archivo descargado en las máquinas anfitrionas de cliente y reemplaza el archivo server-ca.pem
existente.
Una vez que actualizaste los clientes, completa la rotación.
Regresa a la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Selecciona Rotar certificado .
En el cuadro de diálogo Confirmar rotación del certificado , haz clic en Rotar .
Confirma que tus clientes se conectan correctamente.
Si alguno de los clientes no se conecta a través del certificado que se acaba de rotar,
puedes hacer clic en Revertir certificado para
revertirlo a la configuración anterior.
gcloud
Para crear un certificado de servidor, usa el siguiente comando:
gcloud sql ssl server-certs create \
--instance=INSTANCE
Reemplaza INSTANCE por el nombre de la instancia.
Asegúrate de usar el paquete de CA más reciente .
Si no usas el paquete de CA más reciente, ejecuta el siguiente
comando para descargar la información de la CA del servidor más reciente para 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 CA desde la tabla de paquetes de certificados de CA raíz y regionales de esta página.
Luego, actualiza todos los clientes para que usen la nueva información de la CA del servidor. Para ello, copia el archivo descargado en las máquinas anfitrionas de cliente y reemplaza los archivos server-ca.pem
existentes.
Después de actualizar todos tus clientes (si se requieren actualizaciones de clientes), completa la rotación:
gcloud sql ssl server-certs rotate \
--instance=INSTANCE_NAME
Confirma que tus clientes se conectan correctamente.
Si algún cliente no se conecta con el certificado del servidor que se acaba de rotar,
revierte a la configuración anterior.
REST v1
Crea un certificado de servidor.
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:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
Si necesitas descargar la información del certificado de la CA del servidor, puedes usar el siguiente comando.
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:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Completa la rotación.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID : el ID del proyecto
INSTANCE_ID : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-09-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/operation-id ",
"targetProject": "PROJECT_ID "
}
REST v1beta4
Crea un certificado de servidor.
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:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
Si necesitas descargar la información del certificado de la CA del servidor, puedes usar el siguiente comando.
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:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Completa la rotación.
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:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-09-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
Cómo revertir una rotación de certificado
Una vez que completes una rotación de certificado de servidor, todos tus clientes deben usar el certificado nuevo para conectarse a tu instancia de Cloud SQL. Si los clientes
no se actualizan correctamente para que usen la información del certificado nuevo, no pueden
conectarse con SSL/TLS a tu instancia. Si esto sucede, puedes revertir a la configuración anterior del certificado.
Una operación de reversión mueve el certificado activo a la ranura “próximo”, lo que reemplaza 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.
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Selecciona la pestaña Seguridad .
Haz clic para expandir Administrar certificados .
Selecciona Revertir certificado del servidor .
Si no hay certificados aptos,
la opción de reversión no estará disponible.
En el 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
Enumera tus certificados de servidor.
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:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Copia el campo sha1Fingerprint
de la versión a la que quieres revertir.
Busca la versión que tenga un valor createTime
inmediatamente anterior a la versión que tiene el valor sha1Fingerprint
que se muestra como activeVersion
.
Revierte la rotación.
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:
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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
REST v1beta4
Enumera tus certificados de servidor.
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:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Copia el campo sha1Fingerprint
de la versión a la que quieres revertir.
Busca la versión que tenga un valor createTime
inmediatamente anterior a la versión que tiene el valor sha1Fingerprint
que se muestra como activeVersion
.
Revierte la rotación.
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:
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, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
Cómo ver el contenido de los certificados de CA
Puedes usar la utilidad openssl storeutl
para ver el contenido de los certificados de CA.
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
Ejecuta el siguiente comando:
gcloud sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Reemplaza INSTANCE_NAME por el nombre de la instancia.
Usa openssl
para examinar el contenido de los certificados de la CA.
openssl storeutl -noout -text temp_cert.pem
Visualiza el contenido de un certificado de servidor
Puedes usar las utilidades de 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 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
Usa solo openssl s_client
:
openssl s_client -starttls postgres -connect INSTANCE_IP_ADDRESS :5432
Reemplaza INSTANCE_IP_ADDRESS por la dirección IP de la instancia.
Cómo usar gcloud CLI
y openssl storeutl
:
Ejecuta el siguiente comando:
gcloud sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(ssl_cert.cert)' > temp_cert.pem
Reemplaza INSTANCE_NAME por el nombre de la instancia.
Usa openssl
para examinar el contenido de los certificados de servidor.
openssl storeutl -noout -text temp_cert.pem
Descarga los paquetes de certificados de CA raíz y regional para una CA compartida
Si usas una configuración de CA compartida administrada por Google, puedes descargar los paquetes de certificados de CA raíz y regional de la siguiente tabla.
Estos paquetes de certificados no se aplican a las instancias que usan las opciones de CA administrada por el cliente o por instancia.
Restablece la configuración de SSL/TLS
Puedes restablecer completamente la configuración de SSL/TLS.
Precaución: Con esta acción, se quita la capacidad de conectarse a tu instancia mediante SSL/TLS hasta que crees certificados de cliente nuevos para reemplazar los que estaban en uso.
Console
En la Google Cloud consola, ve a la página Instancias de Cloud SQL .
Ir a Instancias de Cloud SQL
Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
Selecciona Conexiones en el menú de navegación de SQL.
Ve a la sección Restablecer la configuración de SSL .
Haz clic en Restablecer la configuración de SSL .
REST v1beta4
Actualiza el certificado:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id : el ID del proyecto
instance-id : Es el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig
Para enviar tu solicitud, expande una de estas opciones:
curl (Linux, macOS o Cloud Shell)
Nota:
Con el siguiente comando, se supone que accediste a
la CLI de gcloud
con tu cuenta de usuario a través de la ejecución de
gcloud init
o
gcloud auth login
,
o a través del uso de
Cloud Shell ,
que accede de forma automática a la CLI de gcloud
.
Para comprobar la cuenta activa actual, ejecuta gcloud auth list
.
Ejecuta el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig"
PowerShell (Windows)
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Crea nuevos certificados de cliente .
Próximos pasos