Db2 LUWでTLS接続を有効化する方法

Db2 LUWでは、クライアントとデータベース間の通信を保護するためにTLS(SSL)の利用が必須です。 さらに、HADR構成や災害対策(DR)を考慮する場合、DNS設計と証明書(SAN)の設計も重要になります。 本記事では、商用証明書を用いたTLS構築に加え、HADR構成での安全な接続設計まで解説します。
この記事で分かること ・Db2 LUWのTLS設定手順 ・db2dsdriver.cfgの安全な設定 ・HADR/DNS切替時のTLS設計 ・実務ベストプラクティス

🧭 TLS構成の全体像

Client db.example.com DNS / 仮想FQDN Primary Standby TLS接続 フェイルオーバー SAN: db.example.com SAN共有
ポイント ・通信は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証明書で検証する
  • TLS1.2以上を使用
  • DNS TTLを短くする
  • 可能ならVIP / LBを利用する
  • 平文ポートを閉鎖する
  • 証明書期限を監視する

✔ まとめ

Db2 LUWにおけるTLSは単なる暗号化ではなく、接続先の正当性を保証する仕組みです。
TLS + HADRでは「証明書設計」と「DNS設計」がセットで必要
特に仮想FQDNとSAN設計を誤ると、フェイルオーバー時に接続障害が発生するため注意が必要です。
カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA