1.はじめに
Oracle WebLogic Serverとは、Java EE/Jakarta EE標準に準拠したOracle社製のアプリケーションサーバーです。2024年12月にバージョン14.1.2がリリースされており、従来のバージョンと比べて機能面で多くの変更が加えられました。本記事では、14.1.2で追加された機能の中でも、従来のバージョンと比較して特に影響が大きいと思われる3つの機能を取り上げ、3回に分けてレポートします。今回はSSLデモ証明書について解説します。
2.SSLデモ証明書
Oracle WebLogic Server(以下WLS)は開発環境でのテストを目的としてSSLデモ証明書をバンドルしています。WLSでSSLデモ証明書が利用されるシーンとしては、以下が挙げられます。
- WLSでSSL通信を行う
- ノードマネージャでSSL通信を行う
これらのシーンでは、デフォルトでSSLデモ証明書を利用する為、ユーザーが意識しないままSSLデモ証明書を利用しているケースがあります。SSLデモ証明書の利用有無は以下の方法で確認します。
- WLSでSSL通信を行う
WLS 起動時のサーバーログまたは標準出力に、デモ用証明書が読み込まれたことを示すメッセージが出力されます。
<BEA-090153> <デモ用のアイデンティティ証明書[
[
Version: V3
Subject: CN=ol8, OU=FOR TESTING ONLY, O=WebLogic Demo Certificate Authority, L=MyTown, ST=MyState, C=US
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
::::
]
]が本番モードで使用されています。サーバーの秘密キーが公開されるので、システムが>セキュリティ攻撃に対して脆弱になります。>
::::
<BEA-090152> <デモ用の信頼性のあるCA証明書[
[
Version: V3
Subject: CN=CertGenCA_base_domain2, OU=FOR TESTING ONLY, O=WebLogic Demo Certificate Authority, L=MyTown, ST=MyState, C=US
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
::::
]
]が本番モードで使用されています。サーバーの秘密キーが公開されるので、システムが>セキュリティ攻撃に対して脆弱になります。>
- ノードマネージャでSSL通信を行う
ノードマネージャ起動時の標準出力に、DemoIdentityがロードされ、セキュア・ソケット・リスナーが開始されたことを示すメッセージが出力されます。
<INFO> <アイデンティティ・キー・ストアをロードしています: FileName=$DOMAIN_HOME/security/DemoIdentity.p12, Type=pkcs12, PassPhraseUsed=true>
::::
<INFO> <ポートXXXX、ホスト/XX.XX.XX.XXでセキュア・ソケット・リスナーが開始しました>
本番環境でのSSLデモ証明書の利用はサポートされておりません。本番環境でSSL通信を行う場合は、正規の機関から取得した証明書を利用してください。
3.バージョンごとの有効期限の違い
WLSのSSLデモ証明書は、デフォルトで2つのキーストアで構成されています。
- DemoIdentity
- サーバ証明書とその秘密鍵を格納します。
- DemoTrust
- WLSのデモ認証局が発行したCA証明書を格納します。
以前のバージョンまでは、キーストアのファイル形式がJKSであり、その有効期限は以下の通りでした。
- DemoIdentity.jks はドメイン作成から15年後まで
- DemoTrust.jks は2032年まで
WLS14.1.2 からキーストアのファイル形式がPKCS#12に変更され、有効期限が以下の通り大幅に短縮されました。
- DemoIdentity.p12 はドメイン作成から6か月後まで
- DemoTrust.p12 はドメイン作成から5年後まで
4.SSLデモ証明書の期限切れによる影響
SSLデモ証明書には有効期限が設定されており、有効期限が切れると利用が出来なくなります。SSLデモ証明書の利用が出来なくなるとWLSの起動不可のような重大障害につながります。過去には、本番環境のノードマネージャにて、意図せずSSLデモ証明書を使用しており、SSLデモ証明書が期限切れになったため、以下のようなエラーが出力されWLSの起動に失敗するケースが報告されました。
<BEA-090479> <XXXX - XX.XX.XX.XXから受け取った証明書チェーンが日付の有効性チェックに失敗しました。>
3.バージョンごとの有効期限の違いに記載の通り、14.1.2ではSSLデモ証明書の有効期限が極端に短くなっているため、より注意が必要となりました。
5.実機検証
WLS14.1.2と以前のバージョン(WLS14.1.1)でバンドルしているSSLデモ証明書の有効期限をそれぞれ出力し、14.1.2の証明書の期限が短くなっていることを確認します。また、14.1.2のSSLデモ証明書の更新方法を説明します。
テスト環境
WLS:14.1.2
OS:Linux 8.10
JDK:Oracle JDK 21.0.9
WLS:14.1.1
OS:Linux 8.10
JDK:Oracle JDK 1.8.0_461
各証明書の有効期限を確認する方法
3.バージョンごとの有効期限の違いに記載の通り、14.1.2と14.1.1ではキーストアのファイル形式や格納ディレクトリが異なるため、有効期限を確認するコマンドが異なります。
14.1.2の場合
以下のコマンドを実施し、出力内容から確認します。
keytool -printcert -file <ファイル名>
<ファイル名>には、以下のファイルを指定してください。
- サーバ証明書 $DOMAIN_HOME/security/democert.der
- CA証明書 $DOMAIN_HOME/security/democacert.der
サーバ証明書
keytool -printcert -file $DOMAIN_HOME/security/democert.der
:::
有効期間の開始日: Sun Aug 31 00:43:50 EDT 2025終了日: Thu Feb 26 23:43:50 EST 2026
上記の出力より、サーバ証明書について以下を確認することができます。
- ドメイン作成日は 2025年8月31日
- 有効期限は 2026年2月26日
有効期限がドメイン作成日より6か月後であることがわかります。
CA証明書
keytool -printcert -file $DOMAIN_HOME/security/democacert.der
:::
有効期間の開始日: Sun Aug 31 00:43:38 EDT 2025終了日: Fri Aug 30 00:43:38 EDT 2030
上記の出力より、CA証明書について以下を確認することができます。
- ドメイン作成日は 2025年8月31日
- 有効期限は 2030年8月30日
有効期限がドメイン作成日より5年後であることがわかります。
14.1.1の場合
サーバ証明書とCA証明書で確認するコマンドが異なります。
サーバ証明書
keytool -v -list -keystore <DOMAIN_HOME>/security/DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase
:::
有効期間の開始日: Sat Nov 08 21:28:22 EST 2025終了日: Fri Nov 09 21:28:22 EST 2040
上記の出力より、サーバ証明書について以下を確認することができます。
- ドメイン作成日は 2025年11月8日
- 有効期限は 2040年11月9日
有効期限がドメイン作成日より15年後であることがわかります。
CA証明書
keytool -printcert -file <WLS_HOME>/server/lib/CertGenCA.der
:::
有効期間の開始日: Fri Nov 30 22:07:51 EST 2012終了日: Wed Dec 01 22:07:51 EST 2032
上記の出力より、CA証明書の有効期限は2032年であることがわかります。WLS12.1.3以上にバンドルされているCA証明書はすべて同じ有効期限になります。
各バージョンの各証明書の有効期限を確認すると、14.1.2では有効期限が大幅に短縮されたことがわかります。
14.1.2の各証明書の有効期限を更新する方法
作業を実施する前に、既存の$DOMAIN_HOME/securityのバックアップを取得してください。
1. デモ用証明書を生成するツール(utils.DemoCertGen)を利用するために環境変数を設定します。$DOMAIN_HOME/binへ移動し、以下のコマンドを実行します。
. ./setDomainEnv.sh
2. $DOMAIN_HOME/security以外で、以下コマンドを実行します。
java utils.DemoCertGen –domain $DOMAIN_HOME
コマンドを実行することで有効期限が、サーバ証明書は6か月後、CA証明書は5年後に更新されます。-genIDOnlyを追加するとサーバ証明書のみ更新することが可能です。
java utils.DemoCertGen –domain $DOMAIN_HOME -genIDOnly
6.まとめ
SSLデモ証明書はユーザーが意識せずに使用しているケースがあり、また、有効期限が切れることでWLSの起動に失敗するといった重大障害を引き起こす恐れがあります。特に14.1.2 からは従来のバージョンより有効期限が大幅に短縮されたため、より注意が必要です。ぜひ一度、意図せずSSLデモ証明書を使用していないかをご確認いただき、万が一使用している場合は、有効期限の確認と正規のSSL証明書への変更をご検討ください。
7.参考文献
Oracle WebLogic Serverセキュリティの管理 - 第6部 SSLの構成 - 29 キーストアの構成
We Are Hiring!