Nesta página, descrevemos como gerenciar certificados de CA do cliente e do servidor.
Gerenciar certificados do cliente
Siga estes procedimentos para gerenciar certificados do cliente no Cloud SQL.
Recuperar um certificado do cliente
É possível recuperar a parte da chave pública de um certificado do cliente. No entanto, não é possível recuperar a chave privada. Se você perdeu a chave privada, precisa criar um novo certificado.
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Em Gerenciar certificados do cliente , clique no nome de um certificado.
A página Certificado do cliente SSL
é aberta e mostra o certificado do cliente (client-cert.pem
) com
um link para fazer o download do certificado.
gcloud
Recupere a chave pública do certificado do cliente com o comando ssl client-certs describe
:
gcloud sql ssl client-certs describe CERT_NAME \
--instance= INSTANCE_NAME \
--format= "value(cert)" > client-cert.pem
REST v1
Liste os certificados na instância para receber a impressão digital do certificado que você quer recuperar:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
]
}
Registre o campo sha1Fingerprint
do certificado que você quer
recuperar. Não inclua as aspas.
Recupere o certificado:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
sha1FingerPrint : o sha1FingerPrint do certificado
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie todos os dados de certificado entre aspas
para um arquivo. Por exemplo, client-cert.pem
. Não copie as
aspas.
REST v1beta4
Liste os certificados na instância para receber a impressão digital do certificado que você quer recuperar:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
]
}
Registre o campo sha1Fingerprint
do certificado que você quer
recuperar. Não inclua as aspas.
Recupere o certificado:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
sha1FingerPrint : o sha1FingerPrint do certificado
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie todos os dados de certificado entre aspas
para um arquivo. Por exemplo, client-cert.pem
. Não copie as
aspas.
Excluir um certificado do cliente
Quando você exclui um certificado do cliente, o servidor do banco de dados é atualizado e não precisa ser reiniciado.
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Em Gerenciar certificados do cliente , encontre o certificado que você
quer excluir e clique em .
No painel Excluir certificado do cliente , clique em Ok .
gcloud
Exclua o certificado do cliente usando o
ssl client-certs delete :
gcloud sql ssl client-certs delete CERT_NAME \
--instance= INSTANCE_NAME
REST v1
Liste os certificados na instância para receber a impressão digital do certificado a ser excluído:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
]
}
Registre o campo sha1Fingerprint
do certificado que você quer
excluir. Não inclua as aspas.
Exclua o certificado:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
sha1FingerPrint : o sha1FingerPrint do certificado
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Liste os certificados na instância para receber a impressão digital do certificado a ser excluído:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
]
}
Registre o campo sha1Fingerprint
do certificado que você quer
excluir. Não inclua as aspas.
Exclua o certificado:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
sha1FingerPrint : o sha1FingerPrint do certificado
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Gerenciar certificados de AC do servidor (por AC de instância)
Esta seção descreve como gerenciar certificados de CA do servidor criados
internamente pelo Cloud SQL. Esse é o modo de CA do servidor padrão no
Cloud SQL. Nessa hierarquia de autoridades certificadoras, o Cloud SQL cria uma
AC do servidor para cada instância.
Alternar certificados de CA do servidor
Se você recebeu um aviso sobre seus certificados que estão para expirar ou se quiser
iniciar uma rotação, siga estas etapas para
concluí-la. Antes de iniciar a rotação, você precisa ter uma nova AC do servidor
na instância. Se uma nova AC do servidor já tiver sido
criada, pule a primeira etapa do procedimento a seguir.
Crie uma nova AC do servidor.
Faça o download das informações do novo certificado de CA do servidor.
Atualize seus clientes para usarem as informações do novo certificado de CA do servidor.
Conclua a rotação. Ela move o certificado ativo
para o slot "anterior" e atualiza o recém-adicionado para que seja
o certificado ativo.
Após a alternância do certificado SSL, suas conexões do App Engine e do
proxy de autenticação do Cloud SQL receberão automaticamente um novo certificado
quando se conectarem.
Console
Faça o download das informações do novo certificado de CA do servidor:
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Clique para expandir a opção Gerenciar certificados .
Selecione Alternar certificado de CA .
Se não houver certificados qualificados, a
opção de rotação não estará disponível.
Clique em Fazer o download dos certificados .
As informações do certificado de CA do servidor, codificadas como um arquivo PEM, são transferidas por download
ao ambiente local:
Atualize todos os clientes do MySQL para usar as novas informações. Basta
copiar o arquivo transferido para as máquinas host do cliente, substituindo o
arquivo server-ca.pem
atual.
Depois de atualizar os clientes, conclua a rotação:
Volte para a guia Segurança .
Clique para expandir a opção Gerenciar certificados .
Selecione Alternar certificado de CA .
Confirme se os clientes estão se conectando corretamente.
Se algum cliente não conseguir se conectar usando o certificado recém-alternado,
selecione Reverter certificado de CA para
reverter para a configuração anterior.
gcloud
Crie um certificado de CA do servidor:
gcloud beta sql ssl server-ca-certs create \
--instance=INSTANCE
Faça o download das informações do certificado para um arquivo PEM local:
gcloud sql ssl server-ca-certs list \
--format="value(cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /FILE_NAME .pem
Atualize todos os clientes para usar as novas informações. Basta copiar o arquivo transferido por download para as máquinas host do cliente, substituindo os arquivos "server-ca.pem" atuais.
Depois de atualizar os clientes, conclua a rotação:
gcloud sql ssl server-ca-certs rotate \
--instance=INSTANCE_NAME
Confirme se os clientes estão se conectando corretamente.
Se algum cliente não conseguir se conectar com o certificado
recém- alternado, reverta para a configuração anterior.
REST v1
Faça o download dos certificados de CA do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Complete a rotação:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Faça o download dos certificados de CA do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Complete a rotação:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Reverter uma operação de rotação de certificado
Depois da rotação, todos os clientes devem usar o novo certificado para se
conectar à instância do Cloud SQL. Se os clientes
não forem atualizados de modo correto para usar as informações do novo certificado,
eles não poderão se conectar à instância usando SSL/TLS. Se isso acontecer, reverta
para a configuração anterior.
Uma operação de reversão move o certificado ativo para o slot "próximo",
substituindo qualquer certificado marcado como "próximo". O certificado
"anterior" se torna o ativo, retornando
sua configuração ao estado em que estava antes
da rotação.
Observação: a operação de reversão do certificado só está disponível até a data de validade do antigo.
Para fazer rollback para a configuração do certificado anterior:
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Clique para expandir a opção Gerenciar certificados .
Selecione Reverter certificado de CA . Se não houver certificados qualificados,
a opção de reversão não estará disponível. Caso contrário, a ação de
reversão será concluída após alguns segundos.
gcloud
gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
REST v1
Faça o download dos certificados de CA do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie o campo sha1Fingerprint
da versão que você quer reverter.
Procure a versão com um valor createTime imediatamente anterior à versão com sha1Fingerprint mostrado como activeVersion
.
Reverta a rotação:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
Corpo JSON da solicitação:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Faça o download dos certificados de CA do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie o campo sha1Fingerprint
da versão que você quer reverter.
Procure a versão com um valor createTime imediatamente anterior à versão com sha1Fingerprint mostrado como activeVersion
.
Reverta a rotação:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Corpo JSON da solicitação:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Iniciar uma rotação
Você não precisa esperar o e-mail do Cloud SQL para iniciar uma rotação.
Você pode fazer isso a qualquer momento. Ao iniciar uma rotação, um novo certificado
é criado e colocado no slot "próximo". Se um certificado já estiver presente
no slot "próximo" no momento da solicitação, ele será excluído.
Só pode haver um certificado "próximo".
Para iniciar uma rotação:
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Clique em Criar certificado de CA .
Clique para expandir a opção Gerenciar certificados .
Selecione Alternar certificado de CA .
Se não houver certificados qualificados,
a opção de rotação não estará disponível.
Conclua a rotação conforme descrito em
Alternar certificados de AC do servidor .
REST v1
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Conclua a rotação conforme descrito em
Alternar certificados de AC do servidor .
REST v1beta4
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Conclua a rotação conforme descrito em
Alternar certificados de AC do servidor .
Receber informações sobre o certificado de CA de um servidor
É possível receber informações sobre o certificado de CA do servidor, como a data de
validade ou o nível de criptografia oferecido.
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Selecione a guia Segurança .
Em Gerenciar certificados de CA do servidor , a data de validade
do certificado de CA do servidor aparece na tabela.
Para conferir o tipo de certificado, use o
comando gcloud sql ssl server-ca-certs list --instance=INSTANCE_NAME
.
gcloud
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME
REST v1
Ao descrever a instância, é possível conferir detalhes sobre o certificado de CA
do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Ao descrever a instância, é possível conferir detalhes sobre o certificado de AC
do servidor:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
}
Conferir o conteúdo dos certificados de AC
É possível usar openssl storeutl
para conferir o conteúdo dos certificados de AC.
Quando você executa o comando beta sql ssl server-ca-certs list , é possível receber vários certificados de AC de operações
anteriores relacionadas à rotação.
gcloud
Execute este comando:
gcloud beta sql ssl server-ca-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Substitua INSTANCE_NAME pelo nome da instância.
Use openssl
para examinar o conteúdo dos certificados de AC.
openssl storeutl -noout -text temp_cert.pem
Conferir o conteúdo de um certificado do servidor
Você pode usar
openssl s_client
para conferir o conteúdo dos certificados do servidor.
gcloud
Para conferir o conteúdo do certificado do servidor, execute o seguinte comando:
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
Substitua INSTANCE_IP_ADDRESS pelo endereço IP da instância.
Gerenciar certificados do servidor (CA compartilhada)
Visualização
Esse recurso está sujeito aos "Termos de ofertas pré-GA" na seção "Termos de Serviço gerais" dos Termos específicos de serviço .
Os recursos pré-GA estão disponíveis "no estado em que se encontram" e podem ter suporte limitado.
Para mais informações, consulte as descrições da fase de lançamento .
Esta seção descreve como gerenciar certificados do servidor em instâncias que
usam ACs compartilhadas.
Você pode ativar o uso de ACs compartilhadas como o
modo de AC do servidor para sua instância especificando GOOGLE_MANAGED_CAS_CA
para
a configuração serverCaMode
(API Cloud SQL Admin) ou a flag --server-ca-mode
(gcloud CLI ) ao
criar a instância .
Alternar certificados do servidor
Se você recebeu um aviso sobre seus certificados que estão para expirar ou se quiser
iniciar uma rotação, siga as etapas abaixo para concluir a rotação.
Antes de iniciar a rotação, é necessário criar um novo certificado do servidor para
a próxima rotação. Se já houver um novo certificado de servidor criado para
a próxima rotação, pule a primeira etapa do procedimento a seguir.
Para fazer a rotação do certificado do servidor na sua instância, siga estas etapas:
Se você precisar de um novo certificado do servidor, crie um.
Se os clientes já confiam na AC raiz, essa etapa é opcional. No entanto, se você precisar atualizar seus clientes com
informações de CA do servidor, faça o seguinte:
Faça o download das informações mais recentes da CA do servidor.
Atualize seus clientes para usar as informações mais recentes da AC do servidor.
Conclua a rotação movendo o certificado ativo para o slot anterior
e atualizando o novo certificado para que seja o ativo.
Console
Não é possível usar o console do Google Cloud para girar certificados do servidor
em instâncias que usam o serviço de AC durante a
pré-visualização .
Use o comando gcloud beta sql ssl server-certs rotate
ou os comandos da API Cloud SQL Admin.
gcloud
Para criar um certificado do servidor, use o seguinte comando:
gcloud beta sql ssl server-certs create \
--instance=INSTANCE
Substitua INSTANCE pelo nome da instância.
Verifique se você está usando o pacote de AC mais recente .
Se você não estiver usando o pacote de AC mais recente, execute o comando
abaixo para fazer o download das informações de AC do servidor mais recentes para a
instância em um arquivo PEM local:
gcloud beta sql ssl server-certs list \
--format="value(ca_cert.cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /server-ca.pem
Ou faça o download dos pacotes de CA na
tabela de pacotes de certificados de CA raiz e regional
nesta página.
Em seguida, atualize todos os clientes para usar as novas informações da AC do servidor,
copiando o arquivo transferido para as máquinas host do cliente, substituindo os
arquivos server-ca.pem
atuais.
Depois de atualizar todos os clientes (se for necessário),
conclua a rotação:
gcloud beta sql ssl server-certs rotate \
--instance=INSTANCE_NAME
Confirme se os clientes estão se conectando corretamente.
Se algum cliente não conseguir se conectar usando o certificado do servidor recém-alterado,
reverter para a configuração anterior.
REST v1
Crie um certificado do servidor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Se você precisar fazer o download das informações do certificado de CA do servidor, use o comando a seguir.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Conclua a rotação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Crie um certificado do servidor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Se você precisar fazer o download das informações do certificado de CA do servidor, use o comando a seguir.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Conclua a rotação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Reverter uma rotação de certificado
Depois de concluir a rotação do certificado do servidor, todos os clientes precisam usar o
novo certificado para se conectar à instância do Cloud SQL. Se os clientes
não forem atualizados de modo correto para usar as informações do novo certificado,
eles não poderão se conectar à instância usando SSL/TLS. Se isso acontecer, reverta
para a configuração anterior.
Uma operação de reversão move o certificado ativo para o slot "próximo",
que substitui qualquer certificado "próximo". O certificado "anterior" se torna
o ativo e retorna a configuração ao estado anterior
antes de você concluir a rotação.
Console
Não é possível usar o console do Google Cloud para reverter certificados do servidor
em instâncias que usam o serviço de CA durante a
pré-visualização .
Use o comando gcloud beta sql ssl server-certs rollback
ou os comandos da API Cloud SQL Admin.
gcloud
gcloud beta sql ssl server-certs rollback \
--instance=INSTANCE_NAME
REST v1
Liste seus certificados do servidor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie o campo sha1Fingerprint
da versão que você quer reverter.
Procure a versão com um valor createTime
imediatamente anterior
à versão com o valor sha1Fingerprint
mostrado como
activeVersion
.
Reverta a rotação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Corpo JSON da solicitação:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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
Liste seus certificados do servidor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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"
}
Copie o campo sha1Fingerprint
da versão que você quer reverter.
Procure a versão com um valor createTime
imediatamente anterior
à versão com o valor sha1Fingerprint
mostrado como
activeVersion
.
Reverta a rotação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID : o ID do projeto
INSTANCE_ID : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Corpo JSON da solicitação:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Conferir o conteúdo dos certificados de AC
É possível usar o utilitário openssl storeutl
para conferir o conteúdo dos certificados de AC.
Quando você executa o comando beta sql ssl server-certs list , sempre recebe
vários certificados de AC devido à cadeia de confiança.
Você também pode receber vários certificados de AC de operações
anteriores relacionadas à rotação.
gcloud
Execute este comando:
gcloud beta sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Substitua INSTANCE_NAME pelo nome da instância.
Use openssl
para examinar o conteúdo dos certificados de AC.
openssl storeutl -noout -text temp_cert.pem
Conferir o conteúdo de um certificado do servidor
É possível usar os utilitários openssl
e o comando beta sql ssl server-certs list
para conferir o conteúdo de um certificado do servidor.
Ao executar o comando gcloud CLI , você sempre recebe
vários certificados de AC devido à cadeia de confiança. Você também
pode receber vários certificados de AC de operações
anteriores relacionadas à rotação.
gcloud
Como usar apenas o openssl s_client
:
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
Substitua INSTANCE_IP_ADDRESS pelo endereço IP da instância.
Como usar gcloud CLI
e openssl storeutl
:
Execute este comando:
gcloud beta sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(ssl_cert.cert)' > temp_cert.pem
Substitua INSTANCE_NAME pelo nome da instância.
Use openssl
para examinar o conteúdo dos certificados do servidor.
openssl storeutl -noout -text temp_cert.pem
Fazer o download de pacotes de certificados de AC raiz e regionais
É possível fazer o download dos pacotes de certificados de AC raiz e regional na tabela
a seguir.
Redefinir a configuração SSL/TLS
É possível redefinir completamente a configuração SSL/TLS.
Cuidado: depois de executar essa ação, não será mais possível se conectar à instância usando o SSL/TLS até que sejam criados novos certificados do cliente para substituir todos aqueles que estavam sendo usados anteriormente.
Console
No console do Google Cloud, acesse a página Instâncias do Cloud SQL .
Acesse Instâncias do Cloud SQL
Para abrir a página Visão geral de uma instância, clique no nome da instância.
Selecione Conexões no menu de navegação do SQL.
Acesse a seção Redefinir configuração SSL .
Clique em Redefinir configuração SSL .
REST v1beta4
Atualize o certificado:
Antes de usar os dados da solicitação,
faça as seguintes substituições:
project-id : o ID do projeto
instance-id : o ID da instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Observação :
o comando a seguir pressupõe que você fez login na CLI gcloud
com sua conta de usuário executando
gcloud init
ou
gcloud auth login
,
ou usando o
Cloud Shell ,
que faz login automaticamente na CLI gcloud
.
.
É possível verificar a conta ativa atual executando
gcloud auth list
.
execute o seguinte 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)
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Resposta
{
"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 "
}
Crie novos certificados do cliente .
A seguir