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証明書で検証する
  • TLS 1.2以上を強制する
  • DNS TTLを短く運用する
  • 可能ならVIP / LBを利用する
  • 非TLS(平文)ポートを閉鎖する
  • 証明書期限の自動監視を導入する

✔ まとめ

Db2 LUWにおけるTLSは単なる暗号化ではなく、接続先の正当性を保証する仕組みです。

TLS + HADRでは「証明書設計」と「DNS設計」がセットで必要

特に仮想FQDNとSAN設計を誤ると、フェイルオーバー時に接続障害が発生するため注意が必要です。

さらにステップアップしたい方へ

Db2のロック・メカニズムや内部構造を深く理解するには、体系的な学習が近道です。

カテゴリー:
関連記事

コメントを残す

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

CAPTCHA