21.4.4 Web Consoleサーバのサーバ証明書をマネージャーホストで使用する場合のSSL通信の設定手順
Web Consoleサーバのサーバ証明書をマネージャーホストで使用する場合の,SSL通信の設定手順について説明します。
Web ConsoleサーバにSSL通信を設定するには,次の二つの設定が必要です。
-
マネージャーホストとWeb Consoleサーバの通信をSSL通信で暗号化する設定
-
Web Consoleサーバとクライアントホストの通信をSSL通信で暗号化する設定
各ホストの設定作業の流れを次の図に示します。
|
各ホストでの設定作業は,ホストにインストールしたコンポーネントの設定作業に加えて,通信先のコンポーネントの設定作業が必要です。
なお,この作業はJP1/AJS3システムを構成するすべてのホストで実施してください。SSL通信の有効・無効の異なるホストが混在すると,ホスト間通信がエラーになります。
- 〈この項の構成〉
(1) JP1/AJS3 - Web ConsoleがSSLで通信するための設定
JP1/AJS3 - Web ConsoleがSSLで通信するための設定作業について説明します。
(a) マネージャーホストとの通信をSSL通信で暗号化する設定
JP1/AJS3 - Web ConsoleがマネージャーホストとSSLで通信するための設定作業は,マネージャーホストとWeb Consoleサーバで異なるサーバ証明書を使用する場合の設定手順と同じです。詳細は,「21.4.3(2)(a) マネージャーホストとの通信をSSL通信で暗号化する設定」を参照してください。
(b) クライアントホストとの通信をSSL通信で暗号化する設定
JP1/AJS3 - Web ConsoleがクライアントホストとSSLで通信するための設定作業について説明します。
-
秘密鍵の作成コマンドを実行して,秘密鍵を作成する。
次のコマンドを実行してください。使用するコマンドは,作成する証明書の種類によって異なります。次のコマンドでは,パスフレーズなしの秘密鍵をPEM形式で作成します。パスフレーズ付きの秘密鍵や,PEM形式でない秘密鍵は,使用できません。
RSA証明書を作成する場合
-
Windowsのとき
openssl.bat genrsa -rand 乱数生成に利用するファイル名 -out 秘密鍵 ファイルのパス秘密鍵のビット長
openssl.batのパスは,「JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat」です。
openssl.batの実行権限については,OpenSSLの公式サイトを参照してください。
-
Linuxのとき
openssl.sh genrsa -rand 乱数生成に利用するファイル名 -out 秘密鍵ファイルのパス 秘密鍵のビット長
openssl.shのパスは,「/opt/jp1ajs3web/uCPSB/httpsd/sbin/openssl.sh」です。
openssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
ECDSA証明書を作成する場合
-
Windowsのとき
openssl.bat ecparam -genkey -noout -rand 乱数生成に利用するファイル名 -name 楕円曲線名 -out 秘密鍵ファイルのパス
openssl.batのパスは,「JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat」です。
openssl.batの実行権限については,OpenSSLの公式サイトを参照してください。
-
Linuxのとき
openssl.sh ecparam -genkey -noout -rand 乱数生成に利用するファイル名[:乱数生成に利用するファイル名 …] -name 楕円曲線名 -out 秘密鍵ファイルのパス
openssl.shのパスは,「/opt/jp1ajs3web/uCPSB/httpsd/sbin/openssl.sh」です。
openssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵ファイルのパスには次のパスを指定します。
- Windowsの場合
-
JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\conf\ssl\server\秘密鍵ファイル名
- Linuxの場合
-
/opt/jp1ajs3web/uCPSB/httpsd/conf/ssl/server/秘密鍵ファイル名
秘密鍵の作成コマンドの詳細については,「付録E.1 秘密鍵の作成」を参照してください。
なお,秘密鍵ファイル名は任意の値を指定できますが,あとの手順で設定するWebサーバ定義ファイル(httpsd.conf)には,デフォルトとしてhttpsdkey.pemが指定されています。このファイル名を使用すると,Webサーバ定義ファイルの秘密鍵ファイル名の設定を変更する必要がなくなります。
-
-
ECDSA証明書を作成する場合は,秘密鍵の形式を変換する。
次のコマンドを実行してください。
-
Windowsの場合
openssl.bat pkcs8 -topk8 -in 変換前の秘密鍵ファイル -out 変換後の秘密鍵ファイル -nocrypt
openssl.batのパスは,「JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat」です。
openssl.batの実行権限については,OpenSSLの公式サイトを参照してください。
-
Linuxの場合
openssl.sh pkcs8 -topk8 -in 変換前の秘密鍵ファイル -out 変換後の秘密鍵ファイル -nocrypt
openssl.shのパスは,「/opt/jp1ajs3web/uCPSB/httpsd/sbin/openssl.sh」です。
openssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵の形式変換コマンドについては,「付録E.2 秘密鍵の形式変換(ECDSA証明書を使う場合)」を参照してください。
-
-
証明書発行要求(CSR)の作成コマンドを実行して,CSRを作成する。
次のコマンドを実行してください。
-
Windowsの場合
openssl.bat req -new 署名アルゴリズム -key 秘密鍵ファイルのパス -out CSRファイルのパス
openssl.batのパスは,「JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat」です。
openssl.batの実行権限については,OpenSSLの公式サイトを参照してください。
-
Linuxの場合
openssl.sh req -new 署名アルゴリズム -key 秘密鍵ファイルのパス -out CSRファイルのパス
openssl.shのパスは,「/opt/jp1ajs3web/uCPSB/httpsd/sbin/openssl.sh」です。
openssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵ファイルのパスには,手順1で秘密鍵の作成コマンドに指定したパスを指定します。CSRファイルのパスには,任意の出力先フォルダとCSRファイル名を指定してください。
証明書発行要求(CSR)の作成コマンドの詳細については,「付録E.3 証明書発行要求(CSR)の作成」を参照してください。
-
-
CAにCSRを送信する。
CAにCSRを送信すると,CAはサーバ証明書,およびサーバ証明書を検証するためのルート証明書を発行します。
-
CAからPEM形式の,サーバ証明書およびルート証明書を取得する。
PEM形式でない,サーバ証明書およびルート証明書は使用できません。サーバ証明書およびルート証明書のファイル名は任意の値を指定できます。
あとの手順で設定するWebサーバ定義ファイル(httpsd.conf)には,サーバ証明書のデフォルトとしてhttpsd.pemが指定されています。このファイル名を使用すると,Webサーバ定義ファイルのサーバ証明書ファイル名の設定を変更する必要がなくなります。
また,取得したルート証明書は,JP1/AJS3 - ManagerがSSLで通信するための設定作業の際に利用します。
-
中間証明書を使用する場合は,サーバ証明書と中間証明書を一つのファイルにまとめる。
サーバ証明書と中間証明書をテキストエディターで開いて,次の順番になるように中間証明書の内容をサーバ証明書に貼り付けてください。
1. サーバ証明書
2. 中間証明書
3. クロスルート証明書※
注※ クロスルート証明書を使用する場合
-
サーバ証明書をWeb Consoleサーバに配置する。
サーバ証明書の格納先フォルダを次に示します。
- Windowsの場合
-
JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\conf\ssl\server
- Linuxの場合
-
/opt/jp1ajs3web/uCPSB/httpsd/conf/ssl/server
-
Webサーバ定義ファイル(httpsd.conf)を編集して,SSL通信を有効にする。
httpsd.confファイルのSSL通信設定部のコメントを解除して,SSL通信を有効にします。
Windowsの場合の変更例を次に示します。この例では,通信用のポート番号,サーバ証明書ファイル名,秘密鍵ファイル名,SSL通信で使用するTLSのバージョン,およびTLSで使用できる暗号種別はデフォルトのまま(サーバ証明書:httpsd.pem,秘密鍵:httpsdkey.pem,TLSのバージョン:TLSv1.2)として,コメントを示す「#」だけ編集しています。
変更前
: Listen 22252 #Listen [::]:22252 #Listen 22253 #Listen [::]:22253 #<VirtualHost *:22253> # ServerName MyServer # SSLEngine On # SSLCertificateFile "C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/conf/ssl/server/httpsd.pem" # SSLCertificateKeyFile "C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/conf/ssl/server/httpsdkey.pem" # SSLProtocol +TLSv1.2 # SSLCipherSuite TLSv1.3 TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384 # SSLCipherSuite AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384 # AllowEncodedSlashes On #</VirtualHost> :
変更後
: #Listen 22252 #Listen [::]:22252 Listen 22253 #Listen [::]:22253 <VirtualHost *:22253> ServerName MyServer SSLEngine On SSLCertificateFile "C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/conf/ssl/server/httpsd.pem" SSLCertificateKeyFile "C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/conf/ssl/server/httpsdkey.pem" SSLProtocol +TLSv1.2 SSLCipherSuite TLSv1.3 TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384 SSLCipherSuite AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384 AllowEncodedSlashes On </VirtualHost> :
なお,使用する環境で,SSL通信用ポート番号,サーバ証明書ファイル名,秘密鍵ファイル名,SSL通信で使用するTLSのバージョン,およびTLSで使用できる暗号種別をデフォルトから変更している場合は,環境に合わせてこれらの設定値も変更してください。
httpsd.confファイルのデフォルト値は次のとおりです。
表21‒13 httpsd.confファイルのデフォルト値 項番
項目
デフォルト値
1
SSL通信用ポート番号
22253
2
サーバ証明書ファイル名
httpsd.pem
3
秘密鍵ファイル名
httpsdkey.pem
4
SSL通信で使用するTLSのバージョン
TLSv1.2
5
TLSv1.3で使用できる暗号種別
-
TLS_AES_128_GCM_SHA256
-
TLS_AES_256_GCM_SHA384
6
TLSv1.2で使用できる暗号種別
-
AES128-GCM-SHA256
-
AES256-GCM-SHA384
-
ECDHE-RSA-AES128-SHA256
-
ECDHE-RSA-AES256-SHA384
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES128-SHA256
-
ECDHE-ECDSA-AES256-SHA384
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES256-GCM-SHA384
httpsd.confファイルの詳細については,「3.4.5 Webサーバ定義ファイル(httpsd.conf)の設定項目の詳細」(Windowsの場合),または「13.3.5 Webサーバ定義ファイル(httpsd.conf)の設定項目の詳細」(Linuxの場合)を参照してください。
-
-
Webサーバ定義ファイル(httpsd.conf)を編集して,SSL通信のログ出力を有効にする。
httpsd.confファイルの「LogFormat」および「CustomLog」のコメントを解除して,SSL通信のログ出力を有効にします。Windowsの場合の変更例を次に示します。
変更前
: #LogFormat "%t %{version}c %{cipher}c %{clientcert}c" hws_ssl #CustomLog "|\"\"C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/sbin/rotatelogs2.exe\" \"C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/logs/ssl\" 10240 8\"" hws_ssl :
変更後
: LogFormat "%t %{version}c %{cipher}c %{clientcert}c" hws_ssl CustomLog "|\"\"C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/sbin/rotatelogs2.exe\" \"C:/Program Files/HITACHI/JP1AJS3WEB/uCPSB/httpsd/logs/ssl\" 10240 8\"" hws_ssl :
-
JP1/AJS3 HTTP Serverサービスを再起動する。
(2) JP1/AJS3 - ManagerがSSLで通信するための設定
JP1/AJS3 - ManagerがSSLで通信するための設定作業について説明します。
-
JP1/AJS3サービスおよびJP1/Baseサービスを停止する。
-
JP1/Baseの共通定義情報PRIVATEKEYFILEの値に,Web Consoleサーバの秘密鍵とサーバ証明書の格納先フォルダを設定する。
JP1/Baseの共通定義情報PRIVATEKEYFILEの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
Web Consoleサーバの秘密鍵とサーバ証明書の格納先フォルダを次に示します。
- Windowsの場合
-
JP1/AJS3 - Web Consoleのインストール先フォルダ\uCPSB\httpsd\conf\ssl\server
- Linuxの場合
-
/opt/jp1ajs3web/uCPSB/httpsd/conf/ssl/server
-
Web Consoleサーバがクライアントホストとの通信をSSL通信で暗号化する設定作業で取得したルート証明書を,通信先のホストにコピーする。
通信先(クライアント側)でサーバ証明書を検証するため,Web Consoleサーバの作業で取得したルート証明書を,通信先ホストにコピーします。
ルート証明書をコピーするホストを次に示します。
-
作業中のマネージャーホスト(自ホスト)
-
通信するすべてのマネージャーホスト
-
通信するすべてのエージェントホスト
-
通信するすべてのJP1/AJS3 - Viewホスト
-
通信するすべてのWeb Consoleサーバ
格納先フォルダのパスを次に示します。
表21‒14 ルート証明書の格納先フォルダ 項番
ホストの種類
格納先フォルダのパス(Windowsの場合)
格納先フォルダのパス(Linuxの場合)
1
マネージャーホスト
JP1/Baseのフォルダに格納します。詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
2
エージェントホスト
3
JP1/AJS3 - Viewホスト
JP1/AJS3 - Viewのインストール先フォルダ\conf\ssl\rootcer
該当しません。
4
Web Consoleサーバ
JP1/AJS3 - Web Consoleのデータフォルダ※1\conf\ssl\rootcer
/etc/opt/jp1ajs3web/conf/ssl/rootcer※2
- 注※1
-
JP1/AJS3 - Web Consoleのデータフォルダを次に示します。
インストール先フォルダがデフォルトまたはシステムで保護されたフォルダ配下の場合:
%ALLUSERSPROFILE%\Hitachi\JP1\JP1_DEFAULT\jp1ajs3web
「システムで保護されたフォルダ」とは,次のパスを指します。
・「システムドライブ\Windows」配下
・「システムドライブ\Program Files」配下
・「システムドライブ\Program Files (x86)」配下
「%ALLUSERSPROFILE%」のデフォルトは「システムドライブ\ProgramData」です。
インストール先フォルダが上記以外の場合:
JP1/AJS3 - Web Consoleのインストール先フォルダ
クラスタ構成の場合:
共有フォルダ\jp1ajs3web
- 注※2
-
クラスタ構成の場合の格納先を次に示します。
共有ディレクトリ/jp1ajs3web/conf/ssl/rootcer
通信先のホストにルート証明書がすでに配置されている場合,配置されているルート証明書の発行元のCAが,サーバ証明書を取得したCAと同一かどうか確認してください。
- 同一のCAの場合
-
すでに配置されているルート証明書がそのまま利用できます。ルート証明書を上書きする必要はありません。
- 異なるCAの場合
-
すでに配置されているルート証明書と,マネージャーホストに配置したルート証明書をまとめてください。この場合,ルート証明書の有効期限が切れても該当部分を適切に入れ替えられるように,個々のルート証明書と結合後のルート証明書の該当部分が対応づけられるようにしておいてください。ルート証明書はBase64でエンコードされているため,結合後のファイルを確認しても,どの部分がどのルート証明書に対応するのかわからなくなります。
詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
-
-
マネージャーホストに,エージェントホストのルート証明書が配置されているか確認する。
エージェントホストのルート証明書の配置は,JP1/AJS3 - AgentがSSLで通信するための設定作業として実施します。JP1/AJS3 - Agentの設定作業を確認してください。
-
SSL通信を有効にする。
SSL通信を有効にする手順については,マニュアル「JP1/Base 運用ガイド」の通信暗号化機能の説明を参照してください。
(3) JP1/AJS3 - AgentがSSLで通信するための設定
JP1/AJS3 - AgentがSSLで通信するための設定手順は,マネージャー・エージェント構成での設定手順と同じです。詳細は,「21.4.2(2) JP1/AJS3 - AgentがSSLで通信するための設定」を参照してください。
(4) JP1/AJS3 - ViewがSSLで通信するための設定
JP1/AJS3 - ViewがSSLで通信するための設定手順は,マネージャー・エージェント構成での設定手順と同じです。詳細は,「21.4.2(3) JP1/AJS3 - ViewがSSLで通信するための設定」を参照してください。
(5) Web GUIがSSLで通信するための設定
Web GUIがSSLで通信するための設定作業は,マネージャーホストとWeb Consoleサーバで異なるサーバ証明書を使用する場合の設定手順と同じです。詳細は,「21.4.3(5)(a) Web GUIがSSLで通信するための設定」を参照してください。
(6) ユーザーアプリケーションがSSLで通信するための設定
ユーザーアプリケーションがSSLで通信するための設定作業は,マネージャーホストとWeb Consoleサーバで異なるサーバ証明書を使用する場合の設定手順と同じです。詳細は,「21.4.3(5)(b) ユーザーアプリケーションがSSLで通信するための設定」を参照してください。
(7) SSL通信の接続確認
各コンポーネント間のSSL通信の接続確認方法は,マネージャーホストとWeb Consoleサーバで異なるサーバ証明書を使用する場合の設定手順と同じです。詳細は,「21.4.3(6) SSL通信の接続確認」を参照してください。