Gerenciar certificados SSL/TLS

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

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Em Gerenciar certificados do cliente, clique no nome de um certificado.
  6. 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

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer recuperar. Não inclua as aspas.

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

  3. Copie todos os dados de certificado entre aspas para um arquivo. Por exemplo, client-cert.pem. Não copie as aspas.

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer recuperar. Não inclua as aspas.

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

  3. 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

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Em Gerenciar certificados do cliente, encontre o certificado que você quer excluir e clique em Exclua..
  6. 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

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer excluir. Não inclua as aspas.

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer excluir. Não inclua as aspas.

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

Gerenciar certificados de CA do servidor

Alternar certificados de CA do servidor

Se você tiver recebido um aviso sobre seus certificados que estão para expirar ou se tiver iniciado uma rotação, siga estas etapas para concluí-la:

  1. Faça o download das informações do novo certificado de CA do servidor.
  2. Atualize seus clientes para usarem as informações do novo certificado de CA do servidor.
  3. 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.

Console

Faça o download das informações do novo certificado de CA do servidor:

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique para expandir a opção Gerenciar certificados.
  6. Selecione Alternar certificado de CA.

    Se não houver certificados qualificados, a opção de rotação não estará disponível.

  7. 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 PostgreSQL para usar as novas informações copiando o arquivo transferido por download para as máquinas host do cliente e substituindo o arquivo server-ca.pem atual.

Depois de atualizar os clientes, conclua a rotação:

  1. Volte para a guia Segurança.
  2. Clique para expandir a opção Gerenciar certificados.
  3. Selecione Alternar certificado de CA.
  4. 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

  1. Crie um certificado de CA do servidor:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE
    
  2. Faça o download das informações do certificado para um arquivo PEM local:
    gcloud beta sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
    
  3. 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.
  4. Depois de atualizar os clientes, conclua a rotação:
    gcloud beta sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. 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

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. 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:

    Você receberá uma resposta JSON semelhante a esta:

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.

Para fazer rollback para a configuração do certificado anterior:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique para expandir a opção Gerenciar certificados.
  6. 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 beta sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. 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.

  3. 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:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. 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.

  3. 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:

    Você receberá uma resposta JSON semelhante a esta:

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

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique em Criar certificado de CA.
  6. Clique para expandir a opção Gerenciar certificados.
  7. Selecione Alternar certificado de CA.

    Se não houver certificados qualificados, a opção de rotação não estará disponível.

  8. Conclua a rotação conforme descrito em Alternar certificados de AC do servidor.

gcloud

  1. Inicie a rotação:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. Conclua a rotação conforme descrito em Alternar certificados de AC do servidor.

REST v1

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. Conclua a rotação conforme descrito em Alternar certificados de AC do servidor.

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. 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

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. 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 beta sql ssl server-ca-certs list --instance=INSTANCE_NAME.

gcloud

gcloud beta 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:

Você receberá uma resposta JSON semelhante a esta:

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:

Você receberá uma resposta JSON semelhante a esta:

Redefinir a configuração SSL/TLS

É possível redefinir completamente a configuração SSL/TLS.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Acesse a seção Redefinir configuração SSL.
  5. Clique em Redefinir configuração SSL.

gcloud

  1. Atualize o certificado:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
    
  2. Crie novos certificados do cliente.

REST v1beta4

  1. 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:

    Você receberá uma resposta JSON semelhante a esta:

  2. Crie novos certificados do cliente.

A seguir