> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Guia para configurar uma comunicação SSL/TLS segura entre o ClickHouse e o ZooKeeper

# Comunicação segura opcional entre o ClickHouse e o ZooKeeper

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Sem suporte no ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

<Note>
  Esta página não se aplica ao [ClickHouse Cloud](https://clickhouse.com/cloud). O procedimento descrito aqui é automatizado nos serviços do ClickHouse Cloud.
</Note>

Você deve especificar `ssl.keyStore.location`, `ssl.keyStore.password`, `ssl.trustStore.location` e `ssl.trustStore.password` para a comunicação com o clickhouse client via SSL. Essas opções estão disponíveis a partir da versão 3.5.2 do ZooKeeper.

Você pode adicionar `zookeeper.crt` aos certificados confiáveis.

```bash theme={null}
sudo cp zookeeper.crt /usr/local/share/ca-certificates/zookeeper.crt
sudo update-ca-certificates
```

A seção `client` no `config.xml` ficará assim:

```xml theme={null}
<client>
    <certificateFile>/etc/clickhouse-server/client.crt</certificateFile>
    <privateKeyFile>/etc/clickhouse-server/client.key</privateKeyFile>
    <loadDefaultCAFile>true</loadDefaultCAFile>
    <cacheSessions>true</cacheSessions>
    <disableProtocols>sslv2,sslv3</disableProtocols>
    <preferServerCiphers>true</preferServerCiphers>
    <invalidCertificateHandler>
        <name>RejectCertificateHandler</name>
    </invalidCertificateHandler>
</client>
```

Adicione o ZooKeeper à configuração do ClickHouse com algumas configurações de cluster e macros:

```xml theme={null}
<clickhouse>
    <zookeeper>
        <node>
            <host>localhost</host>
            <port>2281</port>
            <secure>1</secure>
        </node>
    </zookeeper>
</clickhouse>
```

Inicie o `clickhouse-server`. Nos logs, você deverá ver:

```text theme={null}
<Trace> ZooKeeper: initialized, hosts: secure://localhost:2281
```

O prefixo `secure://` indica que a conexão é protegida por SSL.

Para garantir que o tráfego esteja criptografado, execute `tcpdump` na porta segura:

```bash theme={null}
tcpdump -i any dst port 2281 -nnXS
```

E execute a consulta no `clickhouse-client`:

```sql theme={null}
SELECT * FROM system.zookeeper WHERE path = '/';
```

Em uma conexão não criptografada, você verá algo assim na saída do `tcpdump`:

```text theme={null}
..../zookeeper/quota.
```

Em uma conexão criptografada, você não deve ver isso.
