Db2 LUWでは、クライアントとデータベース間の通信を保護するためにTLS(SSL)の利用が必須です。
さらに、HADR構成や災害対策(DR)を考慮する場合、DNS設計と証明書(SAN)の設計も重要になります。
本記事では、商用証明書を用いたTLS構築に加え、HADR構成での安全な接続設計まで解説します。
この記事で分かること
- Db2 LUWのTLS設定手順
- db2dsdriver.cfgの安全な設定
- HADR/DNS切替時のTLS設計
- 実務ベストプラクティス
目次
🧭 TLS構成の全体像
ポイント
- 通信はTLSで暗号化
- 証明書で接続先を検証
- CA証明書で信頼を担保
🏗 サーバ側設定(商用証明書・社内証明書)
① 鍵DB作成
gsk8capicmd_64 -keydb -create \
-db /home/db2inst1/ssl/server.kdb \
-pw password \
-type cms -stash
② CSR作成
gsk8capicmd_64 -certreq -create \
-db server.kdb \
-pw password \
-label db2_cert \
-dn "CN=db.example.com,O=Company,C=JP"
重要事項
- CNは接続FQDNと一致させる
- SANに必ず仮想ホスト名を含める(例:db.example.com)
- 社内規則に従って申請を行ってください
③ 証明書インポート
# ルート証明書
gsk8capicmd_64 -cert -add -db server.kdb -pw password -label rootCA -file root.crt
# 中間証明書
gsk8capicmd_64 -cert -add -db server.kdb -pw password -label intermediateCA -file intermediate.crt
# サーバ証明書
gsk8capicmd_64 -cert -receive -db server.kdb -pw password -label db2_cert -file server.crt
④ Db2設定
db2 update dbm cfg using SSL_SVR_KEYDB /home/db2inst1/ssl/server.kdb
db2 update dbm cfg using SSL_SVR_STASH /home/db2inst1/ssl/server.sth
db2 update dbm cfg using SSL_SVCENAME 50001
db2stop
db2start
💻 クライアント設定(db2dsdriver.cfg)
<parameter name="SecurityTransportMode" value="SSL"/>
<parameter name="SSLServerCertificate" value="/home/app/root.crt"/>
ベストプラクティス
SSLServerCertificateにはCA証明書を指定してください。
🚨 HADR構成でのTLS設計(超重要)
HADR構成では、フェイルオーバー時に接続先が切り替わるため、TLSの証明書検証と衝突する可能性があります。
【通常時】 app → db.example.com → Primary 【障害時】 app → db.example.com → Standby
❌ 問題になるケース
証明書のホスト名不一致
Primary:CN=primary
Standby:CN=standby
→ フェイルオーバー時にホスト名検証エラーで接続失敗します。
✔ 正しい設計(推奨)
接続先:db.example.com 証明書SAN: - db.example.com - primary.example.com - standby.example.com
設計のポイント
- 仮想FQDNをエンドポイントにする
- SANに全ノード+仮想名を含める
- DNSでの切り替えを前提とする
✔ DNS設計
- db.example.com を使用
- TTLは短め(30〜60秒)に設定
- フェイルオーバー時にレコードのIPを切り替え
✔ より安全な構成(推奨)
[Client] │ ▼ [Load Balancer / VIP] │ ▼ [Primary / Standby]
VIPやロードバランサを利用すると、DNS伝播待ちや証明書の管理をよりシンプルに集約できます。
🚀 Db2 + TLS + HADR ベストプラクティス
- 仮想FQDNで接続する
- SANに全ノード+仮想名を含める
- CA証明書で検証する
- TLS 1.2以上を強制する
- DNS TTLを短く運用する
- 可能ならVIP / LBを利用する
- 非TLS(平文)ポートを閉鎖する
- 証明書期限の自動監視を導入する
✔ まとめ
Db2 LUWにおけるTLSは単なる暗号化ではなく、接続先の正当性を保証する仕組みです。
TLS + HADRでは「証明書設計」と「DNS設計」がセットで必要
特に仮想FQDNとSAN設計を誤ると、フェイルオーバー時に接続障害が発生するため注意が必要です。
さらにステップアップしたい方へ
Db2のロック・メカニズムや内部構造を深く理解するには、体系的な学習が近道です。
- 即戦力のDB2管理術 – 仕組みからわかる管理ノウハウ
- DB2 10 エバリュエーション・ガイド – Db2入門に最適
- 達人に学ぶDB設計徹底指南書 – 設計スキル向上に
