古いサーバのBMC Remote Console/Console Redirectionに接続できない場合の対処
免責事項
本記事内は通常運用ではリスクのある設定変更について記述しています。
もし本記事を参考にする場合は変更内容の意味やリスクを十分に把握したうえで、必要な場合のみにご利用ください。
本記事内で紹介している変更手順を実施したことによる損害については一切責任を負えません。
関連ブログ
本記事は以下の過去ブログと類似のナレッジです。
https://itorwar.blogspot.com/2023/08/idracjava.html
事象
古いサーバの再利用のために、BMCからRemote Console/Console
Redirection(Java)を起動しようとしたらセキュリティ関連のエラーで起動ができませんでした。
古いサーバは利用するSSL証明書やSSLチェーン内のCA証明書の期限が切れていたり、すでにサポートされていない暗号化やハッシュのプロトコルを利用していることがあり、その場合は最新の環境ではセキュリティエラーでアプリケーションが起動しないことがあります。
やったこと一覧
BMCでのSSL証明書再作成
端末側のJavaのセキュリティ設定の変更
端末側のJava例外リストに登録
端末側のJavaでの 「署名付きコード証明書失効チェック」を無効化
BMCでのSSL証明書再作成
古い場合はBMC側で持っているSSL証明書が期限切れの場合があります。
ブラウザによってはRemote Console/Console Redirectionの起動に必要なjnlpファイルのダウンロードを許可しない場合もありますので、
BMC側で証明書更新の手順が準備されている場合、まずはSSL証明書の更新をしたほうが良いです。
手順はBMCの機能に依存するため、手順紹介は省きます。
私の環境ではBMC GUIにログインしてからConfiguration
-> SSL から証明書の更新が可能でした。
GUIの機能で自己署名証明書を再生成して更新できる場合もあれば、自身で作成した証明書をアップロードするパターンもあります。
自己署名証明書の作成方法はググればたくさん出てくると思いますが、例としてOpensslを利用する手順を紹介しているページを一つ載せておきます。
OpenSSL で SSL 自己証明書を発行する手順 | (oscasierra.net)
端末側のJavaのセキュリティ設定の変更
古いサーバのBMCはCipher Suiteが古く、最新の端末環境からはアクセスできない場合があります。
Cipher Suiteについては以下の説明が端的でわかりやすいと思います。
暗号スイート(サイファースイート)とは - 意味をわかりやすく - IT用語辞典 e-Words
古いサーバ側で新しいCipher Suiteに対応できればそれが一番ですが、それが困難なケースも多いです。
その場合はクライアント端末側でセキュリティ設定を変更することで接続できるようになる場合があります。
BMCのRemoteConsole/Console
Redirectionは、古いものであればJavaを利用(jnlpファイルの実行)しているケースがほとんどと思いますので、
Javaのセキュリティ設定を編集することで接続できるようになる場合があります。
私の環境では以下の設定を変えることで古いCipher Suiteでの接続が可能になりました。
※以下の設定は端末のセキュリティ機能を低下させる非推奨な設定となります。リスクを把握したうえで自己責任で実施ください。
C:\Program Files\Java\<version>\lib\security\java.security をエディタで開いて以下の部分をコメントアウト(連続した項目ではありません。)
#jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage
TLSServer, \ # RSA keySize < 1024, DSA
keySize < 1024, EC keySize < 224, \ # include
jdk.disabled.namedCurves, \ # SHA1 usage SignedJAR &
denyAfter 2019-01-01 ------------------------------ #jdk.security.legacyAlgorithms=SHA1, \ # RSA keySize < 2048, DSA
keySize < 2048 ------------------------------ #jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ # DSA keySize < 1024,
include jdk.disabled.namedCurves, \ # SHA1 denyAfter 2019-01-01 ------------------------------ #jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
\ # DH keySize < 1024, EC
keySize < 224, 3DES_EDE_CBC, anon, NULL, \ # include
jdk.disabled.namedCurves |
環境によっては過不足があると思いますので実際の環境に合わせていろいろとお試しください。
端末側のJava例外リストに登録
古いサーバのBMCの Remote Console/Console
Redirection は信頼されないアプリケーションとして、Javaのセキュリティ設定が「高」もしくは「非常に高い」になっている場合は接続ができない場合があります。
その場合はセキュリティ設定を「中」にする必要がありますが、最近のJavaのバージョンでは「中」の選択肢がありません。
その場合はJavaの例外リストにBMCのURLを登録します。
※以下の設定は端末のセキュリティ機能を低下させる非推奨な設定となります。リスクを把握したうえで自己責任で実施ください。
Javaの例外リストはJavaのコントロールパネルから設定ができます。
登録サイトが多い場合は例外サイトの設定ファイルを直接設定するほうが簡単です。
私の環境では以下の場所にありました。
C:\Users\<ユーザ名>\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites
以下のように1URL1行として記載すればOKです。
Http か httpsかはサイトに依存しますが、どちらか分からない場合は両方のパターンで書いておけばどちらもカバーされます。
ファイルにはURLのみを記載し、不要な改行などは入れないほうが無難と思います。
端末側のJavaでの 「署名付きコード証明書失効チェック」を無効化
Remote Console/Console
Redirectionのアプリが署名されている場合、その証明書の失効チェックがなされる場合があります。
その時に古いサーバのBMCの場合は失効チェックが失敗してアプリが起動できない場合があります。
その場合は下記の記事にもあるように署名付きコード証明書失効チェック」を無効化することで該当のチェックをスキップできます。(全文閲覧にはログインが必要)
参考: アーティクル - CS248570 - Windchill アプレットが Windchill PDMLink で「証明書が取り消されました」というエラーでロードに失敗する (ptc.com)
※以下の設定は端末のセキュリティ機能を低下させる非推奨な設定となります。リスクを把握したうえで自己責任で実施ください。
以下の図のようにJavaのコントロールパネルのAdvanced設定から該当項目で Do not checkを選択してください。
おわりに
本記事では古いサーバを再利用する際に発生した問題の回避策について紹介させていただきました。
紹介した設定の多くはセキュリティを低下されることにつながりますので、もし実施する場合はリスクを把握したうえで自己責任でお願いします。
古いセキュリティのプロトコルやCipher SuiteしかサポートしていないサーバやOSなどは、現在では保守が切れていると思いますし、何かしらのセキュリティ脆弱性を内包していると考えたほうが良いです。
決して本番環境や公開環境で利用することなく、攻撃を受ける心配のない安全な環境での再利用が必要になります。
その点にご留意いただきつつ、本記事の内容名が何らかのお役に立てば幸いです。
コメント
コメントを投稿