ドメインの本番モード切り替え
WebLogicのドメイン・モードには「開発モード」、「本番モード」、「保護された本番モード」があります。これまでは構築期間ということで「開発モード」でやってきたわけですが、アプリも揃ったところでこれを「本番モード」に切り替えます。
ドメイン・モードを「開発モード」から「本番モード」に変更すると一部の設定項目のデフォルト値がよりセキュアな値に変更され、サーバ・インスタンスに対するセキュリティ・チェックで基準を満たさない設定があれば警告が出されます。
警告が出されたからといってインスタンスが使用できなくなることはありません。しかし本番環境のセキュリティ・レベルに達していないとダメ出しされているわけですからこれはよろしくありません。「本番モード」に切り替えた後で最低限のレベル、つまり警告が出されない状態になるまでセキュリティ関連設定を追加します。
ドメインのバックアップ
「本番モード」切り替えやセキュリティ関連設定で問題が発生した場合に備えてドメイン・ホーム・ディレクトリのバックアップを取得します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# 起動中のサーバ・インスタンスが存在する場合は停止
/opt/app/oracle/bin/stopManagedWebLogic_prs.sh
/opt/app/oracle/bin/stopWebLogic_prs.sh
# ドメイン格納ディレクトリに移動
cd /opt/app/oracle/config/domains
# バックアップ・ディレクトリ作成
mkdir backup
# ドメインをバックアップ
tar zcf ./backup/prs_domain_`date +%Y%m%d%H%M`.tar.gz ./prs_domain/
# バックアップ(tarアーカイブ)が作成されていることを確認
ls ./backup/
umask設定
本番モードのセキュリティ・チェックではドメイン・ホーム・ディレクトリ以下のパーミッションを調べます。umask 027を基準としてこれに満たないパーミッション(つまり750以上)のディレクトリ、ファイルが見つかればセキュリティ警告の対象となります。
oracleユーザに umaskを設定していない場合は 027を設定してドメイン・ホーム・ディレクトリ以下から otherへの権限をすべて削除します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# .bash_profile編集
vi .bash_profile
→ "umask 027"を追記
# 一旦oracleユーザから抜けて
exit
# 再度 oracleユーザにスイッチ
su - oracle
# umask確認
umask
→ "0027"が返されればOK
# ドメイン・ホーム・ディレクトリ以下から otherへの権限削除
chmod -R o-rwx /opt/app/oracle/config/domains/prs_domain/
# シェル・ディレクトリ以下から otherの権限削除
chmod -R o-rwx /opt/app/oracle/bin/
oracleユーザの umaskが 027であれ デフォルトの 022(0022)であれ WebLogicのインストール・ディレクトリ(/opt/app/oracle/product)以下はインストーラによってパーミッションが適切に付与されます。中には意図的にotherへの権限を設定しているファイルもあるのでインストール・ディレクトリの設定変更はNGです。
ドメイン構成ウィザードやサーバ・インスタンスによって生成されるディレクトリ及びファイルのパーミッションは WebLogicによって適切に管理されており oracleユーザにumaskを設定しなくてもotherへの権限は付与されません。ただしシェルによってリダイレクトしているログ・ファイルや、手動で設定したManaged Serverのboot.properties は umask 027を設定していないとotherへの読込権限(r)が設定されてしまいます。
本番モード切替
本番モード設定
Admin Serverを起動して WebLogic Remote Console(WRC)で接続します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
「ツリーの編集」-「環境」-「ドメイン」をクリックしてドメインの管理画面を表示、「本番モード」をオンに切り替えてから「保存」をクリックします。

ここで注意が必要です。
以前のバージョンと違って WebLogic14.1.2では「保護された本番モード」が「本番モード」のデフォルトに設定されています。「本番モード」をオンに変更して「保存」をクリックすると自動的に「保護された本番モード」もオンになるという、非常にデンジャラスな仕様変更です。

うっかりこの状態で Admin Serverを再起動すると面倒なことになるので「保護された本番モード」をオフに戻してもう一度「保存」、「カートマーク」-「変更のコミット」でコミットします。

「保護された本番モード」を有効にしてしまった場合は
セキュリティ警告だけの「本番モード」と違って「保護された本番モード」では基準に満たない機能は使用不可となります。「本番モード」に切り替えたつもりでこのモードに入ってAdmin Serverを再起動してしまうと WRCから接続すらできないという非常に困った状態に陥ります。

AdminServer stdout.log抜粋(クリックで表示)
<2025/08/25 15時21分09秒 日本標準時> <Info> <Default> <BEA-000000> <JceConfig is unknown>
<2025/08/25 15時21分09秒 日本標準時> <Info> <Default> <BEA-000000> <FIPS compliant operation not available for configuration type OTHER>
<2025/08/25 15時21分09秒 日本標準時> <Info> <Default> <BEA-000000> <JceConfig is in non-FIPS mode>
<2025/08/25 15時21分10秒 日本標準時> <Info> <WebLogicServer> <BEA-000377> <WebLogic ServerをOracle CorporationからJava HotSpot(TM) 64-Bit Server VMバージョン21.0.7+8-LTS-245で起動しています。>
<2025/08/25 15時21分10秒 日本標準時> <Info> <Management> <BEA-141107> <バージョ ン: WebLogic Server 14.1.2.0.0 Tue Nov 26 02:40:45 GMT 2024 2171472>
<2025/08/25 15時21分11秒 日本標準時> <Info> <Management> <BEA-141340> <サーバー がProductionModeEnabled=trueで起動しています>
<2025/08/25 15時21分11秒 日本標準時> <Info> <Management> <BEA-141341> <サーバー がSecureModeEnabled=trueで起動しています>
<2025/08/25 15時21分11秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サ ーバー状態がSTARTINGに変化しました。>
<2025/08/25 15時21分11秒 日本標準時> <Info> <WorkManager> <BEA-002900> <自己チューニング・スレッド・プールを初期化しています。>
<2025/08/25 15時21分12,397秒 日本標準時> <Notice> <Log Management> <BEA-170019> <サーバー・ログ・ファイルweblogic.logging.FileStreamHandler instance=2016597520
Current log file=/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/AdminServer.log
Rotation dir=/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs
を開きました。すべてのサーバーサイド・ログ・イベントはこのファイルに書き込まれます。>
<2025/08/25 15時21分13,133秒 日本標準時> <Notice> <Security> <BEA-090946> <セキ ュリティがセキュリティ・レルムを使用して初期化の前処理を実行しています: myrealm>
<2025/08/25 15時21分13,486秒 日本標準時> <Notice> <Security> <BEA-090947> <セキ ュリティがセキュリティ・レルムを使用して初期化の後処理を実行しています: myrealm>
<2025/08/25 15時21分15,487秒 日本標準時> <Notice> <Security> <BEA-090082> <管理 セキュリティ・レルムを使用してセキュリティが初期化されました: myrealm>
<2025/08/25 15時21分15,889秒 日本標準時> <Notice> <JMX> <BEA-149512> <JMXコネク タ・サーバーがservice:jmx:iiop://172.16.10.51:9002/jndi/weblogic.management.mbeanservers.runtimeで開始しました。>
<2025/08/25 15時21分16,207秒 日本標準時> <Notice> <JMX> <BEA-149512> <JMXコネク タ・サーバーがservice:jmx:iiop://172.16.10.51:9002/jndi/weblogic.management.mbeanservers.domainruntimeで開始しました。>
<2025/08/25 15時21分16,283秒 日本標準時> <Notice> <JMX> <BEA-149512> <JMXコネク タ・サーバーがservice:jmx:iiop://172.16.10.51:9002/jndi/weblogic.management.mbeanservers.editで開始しました。>
<2025/08/25 15時21分18,014秒 日本標準時> <Notice> <Security> <BEA-090171> <タイ プpkcs12のキーストア・ファイル/opt/app/oracle/config/domains/prs_domain/security/DemoIdentity.p12から別名DemoIdentityの下に格納されたアイデンティティ証明書と秘 密キーをロードしています。>
<2025/08/25 15時21分18,250秒 日本標準時> <Alert> <Security> <BEA-090153> <デモ用のアイデンティティ証明書[
[
…
]が本番モードで使用されています。サーバーの秘密キーが公開されるので、システムが セキュリティ攻撃に対して脆弱になります。>
<2025/08/25 15時21分18,254秒 日本標準時> <Notice> <Security> <BEA-090169> <タイ プpkcs12のキーストア・ファイル/opt/app/oracle/config/domains/prs_domain/security/DemoTrust.p12から信頼性のある証明書をロードしています。>
<2025/08/25 15時21分18,368秒 日本標準時> <Notice> <Security> <BEA-090169> <タイ プjksのキーストア・ファイル/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/DemoTrust.jksから信頼性のある証明書をロードしています。>
<2025/08/25 15時21分18,373秒 日本標準時> <Notice> <Security> <BEA-090169> <タイ プjksのキーストア・ファイル/usr/lib/jvm/jdk-21.0.7-oracle-x64/lib/security/cacertsから信頼性のある証明書をロードしています。>
<2025/08/25 15時21分18,380秒 日本標準時> <Alert> <Security> <BEA-090152> <デモ用の信頼性のあるCA証明書[
[
…
]が本番モードで使用されています。デモ用の信頼性のあるCAで署名された証明書を信用 するので、システムがセキュリティ攻撃に対して脆弱になっています。>
<2025/08/25 15時21分18,385秒 日本標準時> <Notice> <Server> <BEA-002613> <チャネ ル"DefaultAdministration"は、現在172.16.10.51: 9002でプロトコルadmin, ldaps, httpsをリスニングしています。>
<2025/08/25 15時21分18,398秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がSTANDBYに変化しました。>
<2025/08/25 15時21分18,399秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がSTARTINGに変化しました。>
<2025/08/25 15時21分18,431秒 日本標準時> <Notice> <Log Management> <BEA-170036> <ログ・メッセージ・カウントを30秒ごとに確認するためのロギング・モニタリング・サ ービス・タイマーが開始されました。>
<2025/08/25 15時21分18,579秒 日本標準時> <Notice> <Log Management> <BEA-170027> <サーバーはドメイン・レベルの診断サービスとの接続を正常に確立しました。>
<2025/08/25 15時21分19,083秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がADMINに変化しました。>
<2025/08/25 15時21分19,127秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRESUMINGに変化しました。>
<2025/08/25 15時21分19,191秒 日本標準時> <Alert> <Security> <BEA-090153> <デモ用のアイデンティティ証明書[
[
…
]が本番モードで使用されています。サーバーの秘密キーが公開されるので、システムが セキュリティ攻撃に対して脆弱になります。>
<2025/08/25 15時21分19,199秒 日本標準時> <Notice> <Server> <BEA-002613> <チャネ ル"DefaultSecure"は、現在172.16.10.51: 7002でプロトコルiiops, t3s, ldaps, https をリスニングしています。>
<2025/08/25 15時21分19,200秒 日本標準時> <Notice> <WebLogicServer> <BEA-000398> <WebLogic Server "AdminServer"に対してセキュア・モードが有効化されています。>
<2025/08/25 15時21分19,200秒 日本標準時> <Notice> <WebLogicServer> <BEA-000329> <ドメイン"prs_domain"で、WebLogic Server管理サーバー"AdminServer"を本番モードで 起動しました。>
<2025/08/25 15時21分19,201秒 日本標準時> <Warning> <Security> <BEA-090976> <セキュア・モードが有効ですが、レルム: myrealmに監査プロバイダが構成されていません。 解決策: レルムに監査プロバイダを構成してください。>
<2025/08/25 15時21分19,241秒 日本標準時> <Warning> <Security> <BEA-091033> <No dedicated network channel configured for HTTPS traffic. SOLUTION: Oracle recommends creating a network channel for only HTTPS traffic for externally available applications. Configure your firewall so that the network channel is available externally, and that the default network channel and other customer internal channels are only accessible internally.>
<2025/08/25 15時21分19,260秒 日本標準時> <Warning> <Security> <BEA-091003> <セキュア・モードでは、Administratorsグループのユーザーに、わかりやすいユーザー名を使用することはできません。解決策: ユーザー名"weblogic"が、一般的に使用される管理者名にならないように変更してください。>
<2025/08/25 15時21分19,353秒 日本標準時> <Notice> <WebLogicServer> <BEA-000360> <サーバーがRUNNINGモードで起動しました。>
<2025/08/25 15時21分19,357秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>
もしこうなってしまった場合はバックアップからドメインをリストアするか、WLSTでオフライン接続してドメインを開発モードに復旧します。
【WLSTで開発モードに変更する場合】
-----------------------------------------------------------------------------
# Admin ServerのプロセスID確認
ps -ef | grep java | grep Admin
# プロセスkill
kill -9 <プロセスID>
# プロセスがkillされたことを確認
ps -ef | grep java | grep Admin
# wlst起動
/opt/app/oracle/product/Oracle_Home/wlserver/common/bin/wlst.sh
# 本番モード解除
readDomain('/opt/app/oracle/config/domains/prs_domain')
cmo.setProductionModeEnabled(False)
updateDomain()
closeDomain()
exit()
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
WLSTによる起動モード復旧の実行例(クリックで表示)
[oracle@prsap01 ~]$ ps -ef | grep java | grep Admin
oracle 7593 7556 1 15:21 pts/0 00:00:35 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=AdminServer -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Xlog:gc:file=/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log:t weblogic.Server
[oracle@prsap01 ~]$ kill -9 7593
[oracle@prsap01 ~]$ ps -ef | grep java | grep Admin
[oracle@prsap01 ~]$ /opt/app/oracle/product/Oracle_Home/wlserver/common/bin/wlst.sh
WARNING: This is a deprecated script. Please invoke the wlst.sh script under oracle_common/common/bin.
WebLogic Scripting Tool(WLST)を初期化しています...
WebLogic Server Administration Scripting Shellへようこそ
使用可能なコマンドに関するヘルプを表示するには、help()と入力してください
wls:/offline> readDomain('/opt/app/oracle/config/domains/prs_domain')
wls:/offline/prs_domain>cmo.setProductionModeEnabled(False)
wls:/offline/prs_domain>updateDomain()
wls:/offline/prs_domain>closeDomain()
wls:/offline>exit()
WebLogic Scripting Toolを終了しています。
[oracle@prsap01 ~]$
本番モード切り替え後の警告レポート確認と対応
ドメインを「本番モード」に変更したらAdmin Serverを再起動、Managed Serverを起動します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server停止
/opt/app/oracle/bin/stopWebLogic_prs.sh
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
# Managed Server起動
/opt/app/oracle/bin/startManagedWebLogic_prs.sh
WRCで Admin Serverに接続すると画面左上にセキュリティ警告の検出を示すメッセージが表示されます。画面右上の「レポートの表示/リフレッシュ」をクリックして警告の内容を確認します。

セキュリティ設定がデフォルトの状態で「開発モード」から「本番モード」に切り替えた場合、レポートには以下 3パターンの警告が出されます。この警告をすべて解消していきます。
ID | サーバ | 説明 |
091031 | AdminServer Managed Server | デフォルトの内部サーブレットが有効化されています。デフォルトの内部サーブレットでは、HTTPまたはHTTPsチャネルを介したT3およびIIOPトンネリングが可能です。解決策: サーバーMBeanのDefaultInternalServletsDisabled属性をtrueに設定してください。 |
091032 | AdminServer Managed Server | このサーバーのキー・ストアの構成ルールが、デモ・アイデンティティおよびデモ信頼に設定されています。デモ用証明書は本番モード・ドメインではサポートされていません。このサーバーでは、デモ用の信頼性のあるCAで署名された証明書を信頼し、サーバーの秘密キーを公開するため、セキュリティ攻撃に対して脆弱になります。解決策: KeyStores属性をCustomIdentityAndJavaStandardTrustまたはCustomIdentityAndCustomTrustに設定してください。 |
091033 | AdminServer Managed Server | No dedicated network channel configured for HTTPS traffic. SOLUTION: Oracle recommends creating a network channel for only HTTPS traffic for externally available applications. Configure your firewall so that the network channel is available externally, and that the default network channel and other customer internal channels are only accessible internally. |
※Admin Serverに対する警告しか表示されていない場合は「キャッシュのリフレッシュ」クリックでManaged Serverの警告も表示
ID 091031
WebLogic関連ドキュメントを漁ってもデフォルト内部サーブレットについての詳しい説明は見当たらなかったので断片的な情報からの推測ですが「t3sではなくHTTPSでAdmin Serverサーバに接続して操作(停止とか)を行う場合には必要、そうじゃなければ不要」な機能かと。
「Oracle WebLogic Server本番環境の保護」
未使用の内部アプリケーションの無効化
アプリケーションの用途とドメインの構成によっては、特定のドメインでいくつかの内部アプリケーションを使用しない場合があります。攻撃面を減らすために、これらのアプリケーションへのアクセスを無効にすることを強くお薦めします。
「Oracle WebLogic Serverセキュリティの管理」
保護された本番モードの使用
ドメインURLのプロトコルとしてT3sのかわりにHTTPSを使用する場合は、トンネリングおよびデフォルトの内部サーブレットを有効にする必要があります。ServerMBean.TunnelingEnabledtrue
、ServerMBean.DefaultInternalServletsDisabled
をfalse
に設定します。
※サーバ停止の項目にノートとして記載
Admin Server操作時の接続プロトコルをデフォルトの t3から t3sにも HTTPSにも変える要件はないので警告に従ってこの機能をオフにします。
WRCでAdmin Serverに接続して「ツリーの編集」でAdmin Serverの編集画面を開き、「一般」タブの「拡張フィールドの表示」にチェックを入れます。

画面を下にスクロールして「デフォルト内部サーブレットの無効化」をオン、「保存」-「カートマーク」-「変更のコミット」でコミットします。Managed Serverのデフォルト内部サーブレットも同じ手順で 無効化します。

Admin ServerとManaged Serverを再起動します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Server停止
/opt/app/oracle/bin/stopManagedWebLogic_prs.sh
# Admin Server停止
/opt/app/oracle/bin/stopWebLogic_prs.sh
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
# Managed Server起動
/opt/app/oracle/bin/startManagedWebLogic_prs.sh
WRCでAdmini Serverに接続して警告レポートを表示します。 ID「091031」が解消されていれば OKです。
ID 091032
「本番モード」ではデフォルトで組み込まれているデモ用のキーストアの使用は推奨されていません。自己署名証明書でキーストアを作成して差し替えます。
正直にいうと私はここら辺の知識がぜんぜんです。 ChatGptにいろいろ相談したところキーストア作成シェルを提供してくれたのでこちらの環境向けにちょっといじってから実行します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# シェル格納ディレクトリに移動
cd /opt/app/oracle/bin
# キーストア作成シェル作成
vi create_wls_keystores.sh
chmod 700 create_wls_keystores.sh
# キーストア作成シェル実行
./create_wls_keystores.sh
自己署名証明書用キーストア作成シェル create_wls_keystores.sh(クリックで表示)
#!/bin/bash
# =====================================================
# WebLogic PKCS12 Keystore Criation Script
# AdminServer + ManagedServer
# =====================================================
# ===== Variable =====
PASSWORD="oracle00"
KEYSIZE=2048
VALIDITY=825 #
BASE_DIR=/opt/app/oracle/config/domains/prs_domain/keystores
HOST_S=`hostname -s`
# Server Listening Hostname (FQDN)
declare -A SERVERS
SERVERS=(
["AdminServer"]="${HOST_S}-mgt.exsample.lan"
["ManagedServer"]="`uname -n`"
)
# ===== Start execution =====
mkdir -p "$BASE_DIR"
echo "=== PKCS12 Start creating keystore ==="
for NAME in "${!SERVERS[@]}"; do
HOST="${SERVERS[$NAME]}"
FILE="${BASE_DIR}/${NAME}.p12"
ALIAS="${NAME,,}" # Alias (lowercase conversion)
IP_ADDR=`grep "${HOST}" /etc/hosts | awk '{print $1}'`
echo "IP_ADDR=${IP_ADDR}"
echo "Creating a keystore for the ${NAME} [$HOST]..."
echo -e "keytool -genkeypair \n -alias $ALIAS \n -keyalg RSA -keysize $KEYSIZE -validity $VALIDITY \n -storetype PKCS12 \n -keystore $FILE \n -storepass $PASSWORD \n -keypass $PASSWORD \n -dname CN=${HOST}, OU=IT, O=YourOrg, L=Tokyo, ST=Tokyo, C=JP \n -ext SAN=dns:${HOST},IP:${IP_ADDR}"
keytool -genkeypair \
-alias "$ALIAS" \
-keyalg RSA -keysize $KEYSIZE -validity $VALIDITY \
-storetype PKCS12 \
-keystore "$FILE" \
-storepass "$PASSWORD" \
-keypass "$PASSWORD" \
-dname "CN=${HOST}, OU=IT, O=YourOrg, L=Tokyo, ST=Tokyo, C=JP" \
-ext "SAN=dns:${HOST},IP:${IP_ADDR}"
if [ $? -eq 0 ]; then
echo " -> Successful creation ${FILE}"
else
echo " !! Creation failure: ${NAME} [${HOST}]"
fi
done
echo ""
echo "=== Creation completed ==="
echo "Example of input when setting WRC:"
for NAME in "${!SERVERS[@]}"; do
HOST="${SERVERS[$NAME]}"
FILE="${BASE_DIR}/${NAME}.p12"
ALIAS="${NAME,,}"
echo "------------------------------------------"
echo "Server: $NAME"
echo " Custom Identity Keystore File Name : $FILE"
echo " Custom Identity Keystore Type : PKCS12"
echo " Custom Identity Keystore Passphrase: $PASSWORD"
echo " Custom Identity Private Key Passphrase: $PASSWORD"
echo " SSL -> Server Private Key Alias : $ALIAS"
echo " SSL -> Server Private Key Passphrase: $PASSWORD"
done
echo "------------------------------------------"
create_wls_keystores.shを実行すると<DOMAIN_HOME>/keystores下に AdminServer.p12、ManagedServer.p12という2つのキーストア・ファイルが作られます。キーストア・ファイルを確認してから Admin Serverを起動します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# キーストア作成確認
ls /opt/app/oracle/config/domains/prs_domain/keystores/
→ AdminServer.p12、ManagedServer.p12が作成されていることを確認
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
WRCで Admin Serverに接続して「ツリーの編集」でAdmin Serverの管理画面に移動、「セキュリティ」タブを表示します。

「セキュリティ」タブの下にある「キーストア」と「SSL」を以下のように設定・保存します。
【Admin Server:キーストア】
項目 | 設定 |
キーストア | カスタム・アイデンティティとJava標準信頼 |
カスタム・アイデンティティ・ キー・ストア・ファイル名 | /opt/app/oracle/config/domains/prs_domain/keystores/AdminServer.p12 |
カスタム・アイデンティティ・ キー・ストア・タイプ | PKCS12 |
カスタム・アイデンティティ・ キー・ストア・パス・フレーズ | キーストアと秘密鍵共通のパス・フレーズ |
【Admin Server:SSL】
項目 | 設定 |
サーバーの秘密キーの別名 | adminserver |
サーバーの秘密キーのパスフレーズ | キーストアと秘密鍵共通のパス・フレーズ |
Managed Serverでも「キーストア」と「SSL」を設定・保存します。
【Managed Server:キーストア】
項目 | 設定 |
キーストア | カスタム・アイデンティティとJava標準信頼 |
カスタム・アイデンティティ・ キー・ストア・ファイル名 | /opt/app/oracle/config/domains/prs_domain/keystores/ManagedServer.p12 |
カスタム・アイデンティティ・ キー・ストア・タイプ | PKCS12 |
カスタム・アイデンティティ・ キー・ストア・パス・フレーズ | キーストアと秘密鍵共通のパス・フレーズ |
【Managed Server:SSL】
項目 | 設定 |
サーバーの秘密キーの別名 | managedserver |
サーバーの秘密キーのパスフレーズ | キーストアと秘密鍵共通のパス・フレーズ |
「カートマーク」-「変更のコミット」で変更をコミットしてから警告レポートを表示します。「キャッシュのリフレッシュ」でID「091032」が消えれば OKです。
SSL接続確認
キーストアを設定したのでSSL接続も確認します。
「ツリーの編集」でAdmin Serverの管理画面に移動して「SSLリスニング・ポート有効」をオンにして保存、コミットします。

APサーバのファイアウォールにシステム外部から Admin Server SSLリスニング・ポート(7002)への接続許可を追加します。
【prsap01、prsap02 / rootユーザで実行】
-----------------------------------------------------------------------------
# 現在のファイアウォール設定を確認
firewall-cmd --list-all
# PCのN/WセグメントにAdmin ServerのHTTPSリスニング・ポートへの接続を許可(1行で記述)
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.11.0/24" port port="7002" protocol="tcp" accept' --permanent
# ファイアウォールの設定をリロード
firewall-cmd --reload
# 最新のファイアウォール設定を確認
firewall-cmd --list-all
WRCから Admin Serverへの接続を一旦切断して新規にSSL用接続プロバイダを作成します。このプロバイダで Admin Serverに接続できれば OKです。

【管理サーバー接続のプロバイダの作成】
項目 | 設定 |
接続プロバイダ名 | ■APサーバ#1:prsap01_ssl_console ■APサーバ#2:prsap02_ssl_console |
ユーザー名 | weblogic |
パスワード | 管理ユーザ(weblogic)のパスワード |
URL | ■APサーバ#1:https://172.16.10.51:7002 ■APサーバ#2:https://172.16.10.52:7002 |
セキュアでない接続の確立 | チェック ※チェックを入れないと「試行に失敗しました: unable to find valid certification path to requested target」 |
Admin Serverと同じ手順で Managed ServerのSSLリスニング・ポイントも有効化します。
Managed Serverには外部のクライアントがまだ存在しないのでSSL接続確認には curlを使用します。HTTPSで DBAliveCheckにアクセスして ”OK” または “Connection Check Error.” が返ってくれば OKです。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# httpsプロトコルでDBAlivedCheckをコール
curl -k "https://`uname -n`:8003/ConnCheck/DBAliveCheck"
→ "OK" または "Connection Check Error."が返されればOK
※curlは-kオプションを忘れずに
Managed Serverの外部通信相手はシステム内部にある Webサーバしかいません。Webサーバ – APサーバ間の通信には HTTPを使用するので SSL設定は不要です。Managed ServerのSSL接続確認が終わったら SSLリスニング・ポートの設定をオフに戻して保存、コミットます。

最後に Admin Server、Managed Serverを再起動して問題が発生しないことを確認します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Server停止
/opt/app/oracle/bin/stopManagedWebLogic_prs.sh
# Admin Server停止
/opt/app/oracle/bin/stopWebLogic_prs.sh
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh
# Managed Server起動
/opt/app/oracle/bin/startManagedWebLogic_prs.sh
ID 091033
この警告だけなぜか英語です。以下、googole翻訳文。
HTTPS トラフィック専用のネットワーク チャネルが構成されていません。
解決策:Oracleでは、外部から利用可能なアプリケーションのHTTPSトラフィック専用のネットワークチャネルを作成することを推奨しています。ネットワークチャネルが外部からアクセスできるようにファイアウォールを構成し、デフォルトのネットワークチャネルとその他の顧客内部チャネルは内部からのみアクセスできるようにします。
同じことは「Oracle WebLogic Server本番環境の保護」の「HTTPS以外のトラフィックからのアクセスを防止するためのネットワーク・チャネルおよびファイアウォールの構成」にも書かれています。なにをやるかといえば警告メッセージに書いてあることそのまんまです。
WRCから Admin Serverに接続して「ツリーの編集」-「環境」-「サーバー」-「AdminServer」でAdmin Serverの管理画面に移動、「SSLリスニング・ポート有効」をオフにして「保存」します。

ツリーの「AdminServer」のすぐ下にある「チャネル」をクリックしてチャネル管理画面を開き「新規」をクリックします。

チャネル作成画面の名前に「Admin_HTTPS」を入れて「作成」をクリックします。チャネルの構成画面が表示されるので以下のように設定・保存してからコミットします。
【Admin_HTTPS構成画面】
項目 | 設定 |
名前 | Admin_HTTPS ※名前は作成画面から引き継ぎ。変更不可 |
有効 | オン |
リスニング・アドレス | ■APサーバ#1:172.16.10.51 ■APサーバ#2:172.16.10.52 |
リスニング・ポート | 7002 |
外部リスニング・アドレス | ■APサーバ#1:172.16.10.51 ■APサーバ#2:172.16.10.52 |
外部リスニング・ポート | 7002 |
プロトコル | https |
警告レポートを表示して「キャッシュのリフレッシュ」で最新の状態に更新します。警告「ID 091033」が消えて他に何も警告が表示されなければWebLogicのセキュリティ対応は完了です。WRCからAdmin Serverへの接続を切断します。

システム外部からAdmin ServerのHTTPリスニング・ポート(7001)への接続許可をAPサーバのファイアウォールから削除します。
【prsap01、prsap02 / rootユーザで実行】
-----------------------------------------------------------------------------
# 現在のファイアウォール設定を確認
firewall-cmd --list-all
# PCのN/WセグメントからAdmin ServerのHTTPリスニング・ポートへの接続許可ルールを削除
firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.11.0/24" port port="7001" protocol="tcp" accept' --permanent
# ファイアウォールの設定をリロード
firewall-cmd --reload
# 最新のファイアウォール設定を確認
firewall-cmd --list-all
ファイアウォールの設定後にWRCでAdmin Serverに接続します。HTTP接続はエラー(Gateway Timeout)、HTTPS接続は成功という結果になれば OKです。
なお、ID「091033」の対応は Admin Serverだけが対象です。Managed Serverにも同じ警告が出ていますが Admin ServerでHTTP専用チャネルを構成すると Managed Serverの警告も解消するので対応は不要です。
APサーバ(WebLogic)の構築は以上です。次はWebサーバを構築します。
APサーバ構築 関連ページ
1.Weblogicインストール
2.WebLogicドメイン構築
3.JDBC接続
4.DB接続確認用アプリ作成
5.アプリ・デプロイ
6.本番モード切替
おまけ
リスニング・ポートをSSLオンリーに設定した場合
折角なのでリスニング・ポートをSSLリスニング・ポートのみ有効(非SSLリスニング・ポートは無効)とした場合の設定についてもまとめておきたいと思います。
WebLogicから見れば Managed Serverのキーストアにある証明書は誰かが勝手に作った怪しげなシロモノです。まずはこの証明書を WebLogicに信頼してもらえるように設定します。
証明書はサーバ・インスタンス起動時にロードされるので実行中のサーバ・インスタンスはすべて停止します。
【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Serverが実行中であれば停止
/opt/app/oracle/bin/stopManagedWebLogic_prs.sh
# Admin Serverが実行中であれば停止
/opt/app/oracle/bin/stopWebLogic_prs.sh
Managed Serverのキーストアから自己署名証明書をエクスポートして JAVA標準cacertsにインポートします。この作業は rootユーザで実行します。
【prsap01、prsap02 / rootユーザで実行】
-----------------------------------------------------------------------------
# Managed Serverのキーストアから証明書をエクスポート
keytool -exportcert -alias managedserver \
-keystore /opt/app/oracle/config/domains/prs_domain/keystores/ManagedServer.p12 \
-file /tmp/ManagedServer.cer -storepass oracle00
# インポート時の日本語入力回避でLANGをCに設定
export LANG=C
# 証明書をJAVA環境のcacertsに証明書をインポート
keytool -importcert -alias managedserver -file /tmp/ManagedServer.cer -cacerts -storepass changeit
→ 「Trust this certificate? [no]:」はyesを入力
# LANGをJa_JP.UTF-8に戻し
export LANG=Ja_JP.UTF-8
Admin Serverを起動してWRCで接続、Managed Serverのリスニングポートをオフ、SSLリスニング・ポートをオンに設定して保存、コミットします。

Managed Serverを起動して WRCで「モニタリング・ツリー」-「環境」-「サーバ」でサーバのモニタリング画面を表示します。Managed Serverのステータスが「実行中」と正しく表示されていれば OKです。

もしManaged Serverの監視がうまくいっていない場合はステータスがこうなります。


Managed Serverのステータス確認が終わったら curlでManaged Serverへのリクエストを実行して HTTP接続は失敗(拒否)、HTTPS接続は成功することを確認します。
[oracle@prsap01 ~]$ curl "http://`uname -n`:7003/ConnCheck/DBAliveCheck"
curl: (7) Failed to connect to prsap01.exsample.lan port 7003: 接続を拒否されま した
[oracle@prsap01 ~]$ curl -k "https://`uname -n`:8003/ConnCheck/DBAliveCheck"
OK
[oracle@prsap01 ~]$
Managed Serverを停止して問題が生じなければ完了です。
【prsap01、prsap02 / rootユーザで実行】 ----------------------------------------------------------------------------- # JAVA標準cacertsからManaged Serverの証明書を削除 keytool -delete -alias managedserver -cacerts -storepass changeit
ちなみに Admin Serverへの接続をSSLオンリーとする場合の設定はこうなります。
・ Admin ServerのキーストアからJAVA標準cacertsに 自己署名証明書をexp/imp
・ HTTPS専用チャネルのリスニング・ポートを7002以外の番号に変更
・ SSLリスニング・ポートをオン、SSLリスニング・ポートをオフ
・ ファイアウォールに許可したAdmin Server接続ポートをHTTPS専用チャネルのポートに修正
・ WebLogci制御用の各ラッピング・シェルのプロトコル指定をt3s、ポート指定を7002に変更
参考情報
このページを書くにあたり以下のドキュメントを参照しています。
コメント