Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-08-19 GMT+08:00

Estabelecimento de conexões TCP/IP seguras no modo SSL

GaussDB(DWS) suporta o SSL padrão. Como um protocolo altamente seguro, o SSL autentica a identificação bidirecional entre o servidor e o cliente usando assinaturas digitais e certificados digitais para garantir a transmissão segura de dados. Para suportar a conexão SSL, o GaussDB(DWS) obteve os certificados formais e as chaves para o servidor e o cliente do centro de certificação da AC. Supõe-se que a chave e o certificado para o servidor são server.key e server.crt, respectivamente; a chave e o certificado para o cliente são client.key e client.crt, respectivamente, e o nome do certificado raiz da AC é cacert.pem.

O modo de conexão SSL é mais seguro. Por padrão, o recurso SSL em um cluster permite conexões SSL e não SSL do cliente. Para fins de segurança, é aconselhável conectar-se ao cluster via SSL do cliente. Certifique-se de que o certificado, a chave privada e o certificado raiz do servidor do GaussDB(DWS) tenham sido configurados por padrão. Para usar forçosamente uma conexão SSL, configure o parâmetro require_ssl na área Require SSL Connection da página Security Settings do cluster no console de gerenciamento do GaussDB(DWS). Require SSL Connection na página Security Settings do cluster. Para obter mais informações, consulte Configurar uma conexão SSL e Combinações de parâmetros de conexão SSL no cliente e no servidor.

O cliente ou driver JDBC/ODBC precisa usar a conexão SSL. Configure os parâmetros de conexão SSL relacionados no código do cliente ou da aplicação. O console de gerenciamento do GaussDB(DWS) fornece o certificado SSL exigido pelo cliente. O certificado SSL contém o certificado padrão, a chave privada, o certificado raiz e o arquivo de criptografia de senha de chave privada exigido pelo cliente. Faça o download do certificado SSL para o host em que o cliente está instalado e especifique o caminho do certificado no cliente. Para obter mais informações, consulte Configurar parâmetros de certificado digital relacionados à autenticação SSL no cliente gsql e Modos de autenticação SSL e parâmetros do cliente.

Usar o certificado padrão pode representar riscos de segurança. Para melhorar a segurança do sistema, é aconselhável alterar periodicamente o certificado para evitar a quebra de senha. Se você precisar substituir o certificado, entre em contato com o atendimento ao cliente de banco de dados.

Configurar uma conexão SSL

Pré-requisitos

  • Depois de modificar os parâmetros de segurança e as modificações entrarem em vigor, o cluster poderá ser reiniciado, o que torna o cluster temporariamente indisponível.
  • Para modificar a configuração de segurança do cluster, certifique-se de que as seguintes condições sejam atendidas:
    • O status do cluster é Available ou Unbalanced.
    • O Task Information não podem ser configurado como Creating snapshot, Scaling out, Configuring ou Restarting.

Procedimento

  1. Faça logon no console de gerenciamento do GaussDB(DWS).
  2. No painel de navegação à esquerda, clique em Clusters.
  3. Na lista de clusters, clique no nome de um cluster. Na página exibida, clique em Security Settings.

    Por padrão, Configuration Status é Synchronized, o que indica que o último resultado do banco de dados é exibido.

  4. Na área SSL Connection, ative Require SSL Connection (recomendado).

    indica que a função está ativada. A require_ssl é definida como 1, indicando que o servidor requer forçadamente a conexão SSL.

    indica que a função está desativada (valor padrão). O parâmetro require_ssl é definido como 0, indicando que o servidor não requer conexões SSL. Para obter detalhes sobre como configurar o parâmetro require_ssl, consulte require_ssl (Servidor).

    Figura 1 Conexão SSL
    • Se o cliente gsql ou driver ODBC fornecido pelo GaussDB(DWS) for usado, o GaussDB(DWS) suportará o protocolo SSL TLSv1.2.
    • Se o driver JDBC fornecido pelo GaussDB(DWS) for usado, o GaussDB(DWS) suporta protocolos SSL, como SSLv3, TLSv1, TLSv1.1 e TLSv1.2. O protocolo SSL usado entre o cliente e o banco de dados depende da versão do Java Development Kit (JDK) usada pelo cliente. Geralmente, o JDK suporta vários protocolos SSL.

  5. Clique em Apply.

    O sistema salva automaticamente as configurações de conexão SSL. Na página Security Settings, o Configuration Status está Applying. Depois que Configuration Status for alterado para Synchronized, as configurações serão salvas e terão efeito.

Configurar parâmetros de certificado digital relacionados à autenticação SSL no cliente gsql

Depois que um cluster de armazém de dados é implementado, o modo de autenticação SSL é ativado por padrão. O certificado do servidor, a chave privada e o certificado raiz foram configurados por padrão. Você precisa configurar os parâmetros do cliente.

  1. Faça logon no console de gerenciamento do GaussDB(DWS). No painel de navegação, escolha Client Connections.
  2. Na área Driver, clique em download an SSL certificate.

    Figura 2 Baixar um certificado SSL

  3. Use uma ferramenta de transferência de arquivos (como o WinSCP) para carregar o certificado SSL para o host onde o cliente está instalado.

    Por exemplo, salve o certificado baixado dws_ssl_cert.zip no diretório /home/dbadmin/dws_ssl/.

  4. Use uma ferramenta de conexão remota SSH (como PuTTY) para fazer logon no host onde o cliente gsql está instalado e execute os seguintes comandos para ir para o diretório onde o certificado SSL está armazenado e descompactar o certificado SSL:

    cd /home/dbadmin/dws_ssl/
    unzip dws_ssl_cert.zip

  5. Execute o comando de exportar e configure os parâmetros de certificado digital relacionados à autenticação SSL no host em que o cliente gsql está instalado.

    Existem dois modos de autenticação SSL: autenticação bidirecional e autenticação unidirecional. Diferentes modos de autenticação exigem diferentes variáveis de ambiente do cliente. Para mais detalhes, consulte Modos de autenticação SSL e parâmetros do cliente.

    Os seguintes parâmetros devem ser configurados para autenticação bidirecional:

    export PGSSLCERT="/home/dbadmin/dws_ssl/sslcert/client.crt"
    export PGSSLKEY="/home/dbadmin/dws_ssl/sslcert/client.key"
    export PGSSLMODE="verify-ca"
    export PGSSLROOTCERT="/home/dbadmin/dws_ssl/sslcert/cacert.pem"

    Os seguintes parâmetros devem ser configurados para autenticação unidirecional:

    export PGSSLMODE="verify-ca"
    export PGSSLROOTCERT="/home/dbadmin/dws_ssl/sslcert/cacert.pem"
    • É aconselhável usar autenticação bidirecional para fins de segurança.
    • As variáveis de ambiente configuradas para um cliente devem conter os caminhos de arquivo absolutos.

  6. Altere as permissões da chave privada do cliente.

    As permissões no certificado raiz do cliente, chave privada, certificado e arquivo de chave privada criptografada devem ser 600. Se as permissões não atenderem ao requisito, o cliente não poderá se conectar ao cluster no modo SSL.

    chmod 600 client.key
    chmod 600 client.crt
    chmod 600 client.key.cipher
    chmod 600 client.key.rand
    chmod 600 cacert.pem

Modos de autenticação SSL e parâmetros do cliente

Existem dois modos de autenticação SSL: autenticação bidirecional e autenticação unidirecional. A tabela Tabela 1 mostra as diferenças entre esses dois modos. É aconselhável usar autenticação bidirecional para fins de segurança.

Tabela 1 Modos de autenticação

Modo de autenticação

Descrição

Variáveis de ambiente configuradas em um cliente

Manutenção

Autenticação bidirecional (recomendada)

O cliente verifica o certificado do servidor e o servidor verifica o certificado do cliente. A conexão pode ser configurada somente após as verificações serem bem-sucedidas.

Defina as seguintes variáveis de ambiente:

  • PGSSLCERT
  • PGSSLKEY
  • PGSSLROOTCERT
  • PGSSLMODE

Esse modo de autenticação é aplicável a cenários que exigem alta segurança de dados. Ao usar esse modo, é aconselhável definir a variável de cliente PGSSLMODE para verify-ca para fins de segurança de dados de rede.

Autenticação unidirecional

O cliente verifica o certificado do servidor, enquanto o servidor não verifica o certificado do cliente. O servidor carrega as informações do certificado e as envia para o cliente. O cliente verifica o certificado do servidor de acordo com o certificado raiz.

Defina as seguintes variáveis de ambiente:

  • PGSSLROOTCERT
  • PGSSLMODE

Para evitar a falsificação de link baseada em TCP, é aconselhável usar a autenticação de certificado SSL. Além de configurar o certificado de raiz do cliente, é aconselhável definir a variável PGSSLMODE para verify-ca no cliente.

Configurar variáveis de ambiente relacionadas à autenticação SSL no cliente. Para mais detalhes, consulte Tabela 2.

O caminho das variáveis de ambiente é definido como /home/dbadmin/dws_ssl/ como um exemplo. Substitua-o pelo caminho real.

Tabela 2 Parâmetros do cliente

Variável de ambiente

Descrição

Intervalo de valores

PGSSLCERT

Especifica os arquivos de certificado para um cliente, incluindo a chave pública. Os certificados comprovam a identidade legal do cliente e a chave pública é enviada para a extremidade remota para criptografia de dados.

O caminho absoluto dos arquivos deve ser especificado, por exemplo:
export PGSSLCERT='/home/dbadmin/dws_ssl/sslcert/client.crt'

(Sem valor padrão)

PGSSLKEY

Especifica o arquivo de chave privada do cliente usado para descriptografar as assinaturas digitais e os dados criptografados usando a chave pública.

O caminho absoluto dos arquivos deve ser especificado, por exemplo:
export PGSSLKEY='/home/dbadmin/dws_ssl/sslcert/client.key'

(Sem valor padrão)

PGSSLMODE

Especifica se a conexão SSL deve ser negociada com o servidor e especifica a prioridade da conexão SSL.

Valores e significados:

  • disable: apenas tenta estabelecer uma conexão não-SSL.
  • allow: tenta estabelecer uma conexão não-SSL primeiro e, em seguida, uma conexão SSL se a primeira tentativa falhar.
  • prefer: tenta estabelecer uma conexão SSL primeiro e, em seguida, uma conexão não-SSL se a primeira tentativa falhar.
  • require: apenas tenta estabelecer uma conexão SSL. Se houver um arquivo de AC, execute a verificação de acordo com o cenário no qual o parâmetro está definido como verify-ca.
  • verify-ca: tenta estabelecer uma conexão SSL e verificar se o certificado do servidor é emitido por uma AC confiável.
  • verify-full: GaussDB(DWS) does not support this mode.

Valor padrão: prefer

NOTA:

Quando um cliente externo acessa um cluster, a mensagem de erro "ssl SYSCALL error" é exibida em alguns nós. Nesse caso, execute export PGSSLMODE="allow" ou export PGSSLMODE="prefer".

PGSSLROOTCERT

Especifica o arquivo de certificado raiz para emissão de certificados de cliente. O certificado raiz é usado para verificar o certificado do servidor.

O caminho absoluto dos arquivos deve ser especificado, por exemplo:
export PGSSLROOTCERT='/home/dbadmin/dws_ssl/sslcert/certca.pem'

Valor padrão: null

PGSSLCRL

Especifica o arquivo de lista de revogação de certificados, que é usado para verificar se um certificado de servidor está na lista. Se o certificado estiver na lista, ele é inválido.

O caminho absoluto dos arquivos deve ser especificado, por exemplo:
export PGSSLCRL='/home/dbadmin/dws_ssl/sslcert/sslcrl-file.crl'

Valor padrão: null

Combinações de parâmetros de conexão SSL no cliente e no servidor

Se o cliente usa o modo de conexão de criptografia SSL e se deve verificar o certificado do servidor depende dos parâmetros do cliente sslmode e do servidor (cluster) ssl e require_ssl. Os parâmetros são os seguintes:

  • ssl (servidor)
    O parâmetro ssl indica se a função SSL deve ser ativada. on indica que a função está ativada e off indica que a função está desativada.
    • O valor padrão é on e você não pode definir esse parâmetro no console de gerenciamento do GaussDB(DWS).
  • require_ssl (servidor)
    O parâmetro require_ssl especifica se o servidor requer conexão SSL forçada. Esse parâmetro é válido somente quando ssl é definido como on. on indica que o servidor requer conexão SSL forçada. off indica que o servidor não requer conexão SSL.
    • O valor padrão é off. Você pode definir o parâmetro require_ssl na área Require SSL Connection da página Security Settings do cluster no console de gerenciamento do GaussDB(DWS).
  • sslmode (cliente)
    Você pode definir esse parâmetro na ferramenta de cliente SQL.
    • No cliente de linha de comando gsql, esse parâmetro é o parâmetro PGSSLMODE.
    • No cliente do Data Studio, esse parâmetro é o parâmetro SSL Mode.

As combinações dos parâmetros cliente sslmode e servidor ssl e require_ssl são as seguintes.

Tabela 3 Combinações de parâmetros de conexão SSL no cliente e no servidor

ssl (servidor)

sslmode (cliente)

require_ssl (servidor)

Resultado

on

disable

on

O servidor requer SSL, mas o cliente desativa o SSL para a conexão. Como resultado, a conexão não pode ser configurada.

disable

off

A conexão não é criptografada.

allow

on

A conexão é criptografada.

allow

off

A conexão não é criptografada.

prefer

on

A conexão é criptografada.

prefer

off

A conexão é criptografada.

require

on

A conexão é criptografada.

require

off

A conexão é criptografada.

verify-ca

on

A conexão é criptografada e o certificado do servidor é verificado.

verify-ca

off

A conexão é criptografada e o certificado do servidor é verificado.

off

disable

on

A conexão não é criptografada.

disable

off

A conexão não é criptografada.

allow

on

A conexão não é criptografada.

allow

off

A conexão não é criptografada.

prefer

on

A conexão não é criptografada.

prefer

off

A conexão não é criptografada.

require

on

O cliente requer SSL, mas o SSL está desabilitado no servidor. Portanto, a conexão não pode ser configurada.

require

off

O cliente requer SSL, mas o SSL está desabilitado no servidor. Portanto, a conexão não pode ser configurada.

verify-ca

on

O cliente requer SSL, mas o SSL está desabilitado no servidor. Portanto, a conexão não pode ser configurada.

verify-ca

off

O cliente requer SSL, mas o SSL está desabilitado no servidor. Portanto, a conexão não pode ser configurada.