1年ほど前に構築した、Horizon環境のJMPサーバーに、突然アクセスできなくなってしまいました。
Horizon Consoleの[設定]-[JMP設定]のメニューを開くと、構成済みのJMP ServerのURLにアクセスできていません。Horizon Consoleに接続しているブラウザの開発者ツールを使用して、JMP ServerからHTTP 401応答が返ってきていることが確認できました。
詳細を調べるには、JMP Serverのログファイル (私の検証環境では C:\Program Files(x86)\VMware\JMP\com\xmp\logs\server_jmp.production.log ) を参照します。
このログから、JMP ServerがHTTP 401応答を返した原因が "Unable to load the public decryption keys or public decryption keys are already expired" であることが分かりました。
この問題の対処方法については、KB76627にまとめられています。
JMP Serverにインストールされているopenssl.exeコマンドを使用して、証明書を再発行するというものですが…
exeファイルが置かれている C:\Program Files(x86)\VMware\JMP フォルダは、環境変数PATHの値に追加されていないでしょうから、事前に追加しておきます。
あるいは、作業フォルダが C:\Program Files(x86)\VMware\JMP\com\keys ですから、 ..\..\openssl.exe と指定してもよいでしょう。
それともう一点、opensslのconfigファイルが見つからないというエラーが出てくる場合があります。
JMP Serverと一緒にインストールされているopensslの構成ファイルは、exeファイルと同じフォルダにある C:\Program Files(x86)\VMware\JMP\openssl.cfg ファイルですが、このファイルのパスを、環境変数 OPENSSL_CONF の値に追加しておく必要があります。
初期設定もそうですが、JMP Serverは、この証明書まわりの設定がちょっと厄介ですね…