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で切替する ・アクティブ・スタンバイ構成、災対環境なども考慮して設計(超重要)
—
・仮想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証明書で検証する
- TLS1.2以上を使用
- DNS TTLを短くする
- 可能ならVIP / LBを利用する
- 平文ポートを閉鎖する
- 証明書期限を監視する
✔ まとめ
Db2 LUWにおけるTLSは単なる暗号化ではなく、接続先の正当性を保証する仕組みです。TLS + HADRでは「証明書設計」と「DNS設計」がセットで必要特に仮想FQDNとSAN設計を誤ると、フェイルオーバー時に接続障害が発生するため注意が必要です。