# 転送中のデータ暗号化 - TLS
+ パブリックエンドポイント経由でTiDBクラスタに接続するには、TLSが必須です
  + TiDB Dedicated: 接続時にクラスタ`CA`（Certification Authority）証明書を指定する必要があります
  + TiDB Serverless: 接続時にデフォルトの`CA`証明書バンドルを指定できます
+ TLSバージョン`1.2/1.3`がサポートされています
![`smart`](TiDBCloudDedicatedTLSCA_aa_001_20230924.png)
```
~!@# Example:@!~

mysql \
  --comments --connect-timeout 15 ~!@--ssl-mode=VERIFY_IDENTITY@!~ \
  ~!@--ssl-ca=<path-to-ca-file> --tls-version="TLSv1.2"@!~ \
  -u root -h tidb.xxxxxxx.clusters.tidb-cloud.com -P 4000 -D test -p<your_password>

mysql> SHOW STATUS WHERE VARIABLE_NAME='Ssl_cipher';
+---------------+----------------------+
| Variable_name | Value                |
+---------------+----------------------+
| Ssl_cipher    | ECDHE-RSA-AES128-SHA |
+---------------+----------------------+
1 row in set (0.18 sec)
```

------------------------------------------------------------------------------
クライアントとTiDBクラスタの間に安全なTLS接続を確立することは、データベースに接続する際の基本的なセキュリティ対策の1つと考えられています。TiDB CloudのTiDBクラスタにプレーンテキストで接続することはできません。接続方法としてサポートされているのはTLSだけです。

TiDB Serverlessのサーバー証明書は、独立したサードパーティの証明書プロバイダーによって発行されます。サーバー側のデジタル証明書をダウンロードしなくても、TiDB Serverlessクラスタに簡単に接続できます。オペレーティングシステムが提供するデフォルトのCAバンドルファイルは、クライアントとTiDB Serverless間の安全な接続をサポートするのに十分です。オペレーティングシステムごとのCA証明書の場所は次のとおりです。
- `macOS/Alpine: /etc/ssl/cert.pem`
- `Debian/Ubuntu/Arch: /etc/ssl/certs/ca-certificates.crt`
- `CentOS/RedHat/Fedora: /etc/pki/tls/certs/ca-bundle.crt`
- `OpenSUSE: /etc/ssl/ca-bundle.pem`
- `Windows:` WindowsはCAルートへの特定のパスを提供していません。代わりに、レジストリを使用して証明書を保存します。このため、最初にCAバンドルファイルをダウンロードする必要があります。
  - `https://curl.se/docs/caextract.html`からMozilla CA証明書バンドルをダウンロードして保存します。

TiDB Cloudは、X.509証明書に基づくクライアントサーバーおよびクラスタコンポーネントTLS送信暗号化をサポートしています。これにより、送信中にデータが暗号化され、データのセキュリティが向上します。

サーバークライアント:クライアントとTiDBサーバー間のTLSの有効化をサポートします。これにより、クライアントとサーバー間で送信されるデータのセキュリティが確保されます。

コンポーネント-コンポーネント:TiDBクラスタの内部コンポーネント間でのTLSの有効化をサポートします。これにより、TiDB クラスタの内部コンポーネント間のデータ転送のセキュリティが確保されます。
