はじめに
目的
この文書は、Oracleシステムで安全に通信するためのSSL/TLS設定手順を分かりやすく解説します。主にODHクラスタでの自己署名証明書の導入、OpenSSLを使ったTLS/SSL設定、OracleデータベースのTLS接続有効化を扱います。設定ファイルの編集例やコマンド例、LDAP統合時の注意点も含めます。
対象読者
システム管理者、DBA、運用エンジニアを想定します。Linuxの基本操作とOracleの基礎知識があるとスムーズです。初めての方でも手順に沿えば実装できるよう、具体例を交えて説明します。
前提条件と準備
作業前に以下を確認してください。
– バックアップとリカバリ手順を用意する。
– OpenSSL等の基本ツールが使えること。
– 対象ノードへの管理権限を持っていること。
本文の構成と読み方
第2章はODHクラスタでの自己署名証明書の作成と配布方法、第3章はOpenSSLを使ったTLS/SSL設定の具体例、第4章はOracleデータベース側でTLS接続を有効にする手順です。実機で試す前にステージング環境で検証してください。
注意点
証明書の有効期限管理、時刻同期、ファイアウォール設定の確認を忘れないでください。LDAP連携がある場合は証明書チェーンの扱いに注意が必要です。
ODHクラスタにおける自己署名証明書によるSSL有効化
概要
ODHクラスタで自己署名証明書を使ってSSLを有効化する手順をわかりやすく説明します。クラスタのバージョン差に注意し、設定ファイルとコマンド操作を中心に説明します。
前提
- クラスタバージョンを確認してください。3.0.6以下とそれ以上で手順が異なります。
- 編集権限のあるユーザーで操作します。
主な手順
- バージョン判定
- 3.0.6以下の場合は、bds-certs.conf内でLEGACY_CLUSTER=trueを設定します。これにより従来の処理が有効になります。
- bds-certs.confの編集
- 対象サービスを指定します。例: AMBARI、RANGER、HUEなど。カンマ区切りで列挙します。
- LDAP/ADを統合する場合はLDAP_URLにldaps://で始まるURLを設定します(例: ldaps://ldap.example.com:636)。
- SSL有効化コマンドの実行
- 次のコマンドで自己署名証明書を生成して有効化します。
sudo bds_cert_util –enable –ambariPass ambari-password - ambariのパスワードに特殊文字が含まれる場合は一重引用符で囲ってください。例: –ambariPass ‘pa$$w0rd!’
注意点と例
- サービス指定の例: services=”AMBARI,RANGER,HUE”
- LDAP接続は必ずldapsでテストしてから本番に反映してください。
- 実行時にエラーが出たらログを確認し、設定値(URLやサービス名、パスワード)を再確認してください。
OpenSSLを使用したTLS/SSLの設定
手順の概略
OpenSSLでTLSを使う流れは、暗号スイート確認→鍵生成→証明書署名(CA/中間CA)→サーバー証明書発行→鍵の暗号化、の順です。具体例を交えて丁寧に説明します。
暗号スイートの確認
利用可能な暗号を確認するには次を使います。例: openssl ciphers -v。推奨はAES-GCMやCHACHA20を含むモダンな組み合わせです。実際の環境で互換性を確認してください。
RSA鍵の生成
秘密鍵を作るには例: openssl genrsa -out server.key 2048。
2048ビットは一般的ですが、高い安全性が必要なら4096ビットを検討します。鍵は安全な場所に保管してください。
自己署名CAと中間CAの作成
ルートCAを自己署名する場合はopenssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crtのように作成します。より安全にするため中間CAを作り、ディレクトリ構成(certs, newcerts, private, crlなど)を用意してCSRを中間で署名します。これによりルート鍵の露出を避けます。
サーバー証明書の署名
サーバーCSRを作成: openssl req -new -key server.key -out server.csr。中間CAで署名してopenssl ca -in server.csr -out server.crtのように発行します。サーバー名(CN/SAN)を正しく設定してください。
鍵の暗号化(パスフレーズ保護)
秘密鍵をAESで暗号化する例: openssl rsa -aes256 -in server.key -out server.key.enc。パスフレーズを設定すると鍵の盗難対策になります。ただし自動起動時はパスフレーズ入力が必要になる点に注意してください。
注意点
証明書チェーン(ルート→中間→サーバー)をサーバー設定に正しく渡す、期限管理を行う、鍵は最小限の権限で扱う、を心がけてください。
OracleデータベースのTLS接続有効化
前提条件
- configImpactSSLスクリプトを事前に実行しておく。\
- $IMPACT_HOME/etc/server.propsで必要なプロパティを設定する。\
- Oracle側ではウォレット(またはトラストストア)を用意し、証明書を配置しておく。\
手順(基本フロー)
- server.propsを編集します。例:
- ssl.enabled=true
- ssl.keystore=/path/to/keystore.p12
- ssl.keystore.password=yourPassword
- ssl.truststore=/path/to/truststore.jks
- ssl.truststore.password=trustPassword
- ssl.port=2484
上記は例です。既存のプロパティ名に合わせて設定してください。 - Oracle側のリスナーとDBインスタンスでTLSを有効化します。ウォレットや証明書のパスをlistener.oraやsqlnet.oraに設定してください。
- ImpactサーバーとOracleリスナーを再起動します。設定が反映されます。
検証方法
- クライアントからTLS接続を試みます(例:sqlplusでTCPS接続)。
- ネットワークレベルで暗号化が有効か確認します(tcpdumpやssldumpで暗号化ハンドシェークを確認)。
- ログ(ImpactのログとOracleのアラートログ)にエラーがないか確認します。
注意点
- キーストア/トラストストアのパスとパスワードを厳重に管理してください。\
- 自己署名証明書を使う場合はクライアント側で信頼設定が必要です。\
- テスト環境で先に検証し、本番は影響範囲を評価したうえで切り替えてください。












