このページでは、SSLによる通信経路暗号化の操作手順について説明します。
背景情報
通信経路のセキュリティを向上させるため、OceanBaseデータベース接続ではSSL(Secure Sockets Layer)暗号化を有効にできます。これにより、伝送層でネットワーク接続を暗号化し、通信データのセキュリティを強化します。SSL接続を有効にした後は、クライアントもSSL接続を使用してアクセスすることを要求する設定が可能です。
説明
- SSLによる通信経路暗号化を有効にすると、インスタンスのパフォーマンスがわずかに低下します(証書の暗号化および復号化には一定の計算リソースが消費されるため)。外部ネットワークへの接続がある場合、または伝送暗号化が必要な場合にのみ、インスタンスのSSLによる通信経路暗号化を有効にすることを推奨します。
- SSLによる通信経路暗号化機能は、直接接続先には適用されません。
TLSバージョンの説明
TLS(Transport Layer Security)は、インターネット通信のプライバシーとデータのセキュリティを保護するために広く採用されている伝送層セキュリティプロトコルです。TLSプロトコルには多くのバージョンがあり、JDKとMySQL Connector/Jの組み合わせによって、TLSのサポート状況は以下のように異なります:
JDKバージョン |
MySQL Connector/Jバージョン |
TLSv1.0 |
TLSv1.1 |
TLSv1.2 |
TLSv1.3 |
|---|---|---|---|---|---|
| JDK 8< 8u291 | - | サポート | サポート | サポート | 非サポート |
| JDK 8:8u291 ~ 8u333 | - | 非サポート | 非サポート | サポート | 非サポート |
| JDK 8>= 8u341 | < 8.0.19 | 非サポート | 非サポート | サポート | 非サポート |
| JDK 8>= 8u341 | = 8.0.19 | 非サポート | 非サポート | サポート | サポート |
| JDK 9 | - | サポート | サポート | サポート | 非サポート |
| JDK 11 < 11.0.11 | < 8.0.19 | サポート | サポート | サポート | 非サポート |
| JDK 11 < 11.0.11 | >= 8.0.19 | サポート | サポート | サポート | サポート |
| JDK 11>= 11.0.11 | < 8.0.19 | 非サポート | 非サポート | サポート | 非サポート |
| JDK 11>= 11.0.11 | >= 8.0.19 | 非サポート | 非サポート | サポート | サポート |
説明
TLSv1.0とTLSv1.1は、2021年にIETFによって廃棄されました(RFC8996)。セキュリティ上の理由から、TLSv1.2以降のTLSプロトコルを使用した安全な通信を推奨します。
操作手順
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで クラスタ をクリックし、対象のクラスタを選択して クラスタページ ページに移動します。
左側のナビゲーションバーで セキュリティ設定 をクリックします。
セキュリティ設定画面では、デフォルトで SSLによる通信経路暗号化 タブが表示されます。以下の操作を実行できます:

SSLによる通信経路暗号化 スイッチをクリックしてSSLによる通信経路暗号化を有効にします。有効化には約3〜5分かかります。
SSL接続を強制 スイッチをクリックして、非SSL接続を遮断します。
CA証明書をダウンロードする をクリックすると、圧縮ファイルがダウンロードされます。このファイルには以下の3つのファイルが含まれています:
p7bファイル:WindowsシステムでCA証書をインポートするために使用します。
PEMファイル:その他のシステムやアプリケーションでCA証書をインポートするために使用します。
JKSファイル:Javaのtruststore証書格納ファイルです。パスワードはすべてOceanBaseとなっており、JavaプログラムでCA証書チェーンをインポートするために使用します。
JavaでJKS証書ファイルを使用する場合、jdk7およびjdk8ではデフォルトのJDKセキュリティ設定を変更する必要があります。アプリケーションが配置されているホストの
jre/lib/security/java.securityファイルで、以下の2項目の設定を変更します:jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024JDKセキュリティ設定を変更しない場合、以下のエラーが発生します。その他の類似のエラーも、一般的にはJavaのセキュリティ設定が原因です。
javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
SSL証書の有効期限の右側にある 更新 をクリックすると、SSL証書の有効期限を更新できます。
SSL 証明書有効期限の自動更新 スイッチをクリックして有効にすると、証明書は期限の7日前に自動的に更新され、更新ごとに有効期間は360日間になります。
自動更新履歴を表示 をクリックすると、イベントセンターに移動して、証書の自動更新に関する詳細情報を確認できます。
よくある質問
Javaプログラムの接続時に javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) エラーが発生した場合、以下のいずれかの方法で解決できます:
- JDBC接続文字列のURLパラメータでTLSバージョンを指定します。例えば、enabledTLSProtocols=TLSv1.2 を指定します。
- 使用しているJDKバージョンを1.8.0_291以下に下げます。