3.3.2 SSL通信環境のセットアップ
JP1/AJS3 for Cloud Service ApplicationsでSSL通信を設定する場合,サーバ側のホストにサーバ証明書が,クライアント側のホストにルート証明書が必要です。サーバ証明書とルート証明書については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(システム構築編)」のSSLによるJP1/AJS3の通信の暗号化の説明を参照してください。
- 〈この項の構成〉
(1) JP1/AJS3 for Cloud Service ApplicationsがSSLで通信するための設定
JP1/AJS3 for Cloud Service ApplicationsがクライアントホストとSSLで通信するための設定手順を次に示します。
-
秘密鍵の作成コマンドを実行して,秘密鍵を作成する。
次のコマンドを実行してください。使用するコマンドは,作成する証明書の種類によって異なります。次のコマンドでは,パスフレーズなしの秘密鍵をPEM形式で作成します。パスフレーズ付きの秘密鍵や,PEM形式でない秘密鍵は,使用できません。
- RSA証明書を作成する場合
-
Windowsの場合:
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat genrsa -rand 乱数生成に利用するファイル名 -out 秘密鍵ファイルのパス 秘密鍵のビット長
Linuxの場合:
/opt/jp1ajs3csa/uCPSB/httpsd/sbin/openssl.sh genrsa -rand 乱数生成に利用するファイル名 -out 秘密鍵ファイルのパス 秘密鍵のビット長
- ECDSA証明書を作成する場合
-
Windowsの場合:
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat ecparam -genkey -noout -rand 乱数生成に利用するファイル名 -name だ円曲線名 -out 秘密鍵ファイルのパス
Linuxの場合:
/opt/jp1ajs3csa/uCPSB/httpsd/sbin/openssl.sh ecparam -genkey -noout -rand 乱数生成に利用するファイル名[:乱数生成に利用するファイル名 ...] -name だ円曲線名 -out 秘密鍵ファイルのパス
openssl.batおよびopenssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵ファイルのパスには次のパスを指定します。
- Windowsの場合
-
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\conf\ssl\server\httpsdkey.pem※
- Linuxの場合
-
/opt/jp1ajs3csa/uCPSB/httpsd/conf/ssl/server/httpsdkey.pem※
秘密鍵の作成コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド」のSSL通信用証明書の取得に使用するコマンドについての説明を参照してください。
- 注※
-
「httpsdkey.pem」は秘密鍵ファイル名です。秘密鍵ファイル名には任意のファイル名を指定できます。
秘密鍵ファイル名を「httpsdkey.pem」から変更する場合は,あとの手順で設定するWebサーバ定義ファイル(httpsd.conf)に指定されているデフォルトの暗号鍵ファイル名「httpsdkey.pem」の設定も変更してください。
-
ECDSA証明書を作成する場合は,秘密鍵の形式を変換する。
次のコマンドを実行してください。
Windowsの場合:
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat pkcs8 -topk8 -in 変換前の秘密鍵ファイル -out 変換後の秘密鍵ファイル -nocrypt
Linuxの場合:
/opt/jp1ajs3csa/uCPSB/httpsd/sbin/openssl.sh pkcs8 -topk8 -in 変換前の秘密鍵ファイル -out 変換後の秘密鍵ファイル -nocrypt
openssl.batおよびopenssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵の形式変換コマンドについては,マニュアル「JP1/Automatic Job Management System 3 構築ガイド」のSSL通信用証明書の取得に使用するコマンドについての説明を参照してください。
-
証明書発行要求(CSR)の作成コマンドを実行して,CSRを作成する。
次のコマンドを実行してください。
Windowsの場合:
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\sbin\openssl.bat req -new 署名アルゴリズム -key 秘密鍵ファイルのパス -out CSRファイルのパス
Linuxの場合:
/opt/jp1ajs3csa/uCPSB/httpsd/sbin/openssl.sh req -new 署名アルゴリズム -key 秘密鍵ファイルのパス -out CSRファイルのパス
openssl.batおよびopenssl.shの実行権限については,OpenSSLの公式サイトを参照してください。
秘密鍵ファイルのパスには,手順1で秘密鍵の作成コマンドに指定したパスを指定します。CSRファイルのパスには,任意の出力先フォルダとCSRファイル名を指定してください。
証明書発行要求(CSR)の作成コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド」のSSL通信用証明書の取得に使用するコマンドについての説明を参照してください。
-
CAにCSRを送信する。
CAにCSRを送信すると,CAはサーバ証明書,およびサーバ証明書を検証するためのルート証明書を発行します。
-
CAからPEM形式のサーバ証明書およびルート証明書を取得する。
- 重要
-
PEM形式でないサーバ証明書およびルート証明書は使用できません。
サーバ証明書およびルート証明書のファイル名は任意の値を指定できます。
あとの手順で設定するWebサーバ定義ファイル(httpsd.conf)には,サーバ証明書のデフォルトとしてhttpsd.pemが指定されています。このファイル名を使用すると,Webサーバ定義ファイルのサーバ証明書ファイル名の設定を変更する必要がなくなります。
また,取得したルート証明書は,サービス連携ジョブおよびサービス連携監視ジョブがSSLで通信するための設定作業の際に利用します。
-
中間証明書を使用する場合は,サーバ証明書と中間証明書を1つのファイルにまとめる。
サーバ証明書と中間証明書をテキストエディターで開いて,次の順番となるように中間証明書の内容をサーバ証明書に貼り付けてください。
1. サーバ証明書
2. 中間証明書
3. クロスルート証明書※
注※ クロスルート証明書を使用する場合だけ
-
サーバ証明書をJP1/AJS3 for Cloud Service Applicationsサーバに配置する。
サーバ証明書の格納先フォルダを次に示します。
- Windowsの場合
-
JP1/AJS3 for Cloud Service Applicationsのインストール先フォルダ\uCPSB\httpsd\conf\ssl\server
- Linuxの場合
-
/opt/jp1ajs3csa/uCPSB/httpsd/conf/ssl/server
-
Webサーバ定義ファイル(httpsd.conf)を編集して,SSL通信を有効にする。
Webサーバ定義ファイル(httpsd.conf)ファイルのSSL通信設定部のコメントを解除して,SSL通信を有効にします。
Windowsの場合の変更例を次に示します。この例では,通信用のポート番号,サーバ証明書ファイル名,秘密鍵ファイル名,SSL通信で使用するTLSのバージョン,およびTLSで使用できる暗号種別はデフォルトのまま(サーバ証明書:httpsd.pem,秘密鍵:httpsdkey.pem,TLSのバージョン:TLSv1.2)として,コメントを示す「#」だけ編集しています。
<変更前>
: Listen 22265 #Listen [::]:22265 #Listen 22266 #Listen [::]:22266 #<VirtualHost *:22266> # ServerName MyServer # SSLEngine On # SSLCertificateFile "C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/conf/ssl/server/httpsd.pem" # SSLCertificateKeyFile "C:/Program Files/HITACHI/JP1AJS3CSA/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 22265 #Listen [::]:22265 Listen 22266 #Listen [::]:22266 <VirtualHost *:22266> ServerName MyServer SSLEngine On SSLCertificateFile "C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/conf/ssl/server/httpsd.pem" SSLCertificateKeyFile "C:/Program Files/HITACHI/JP1AJS3CSA/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で使用できる暗号種別をデフォルトから変更している場合は,環境に合わせてこれらの設定値も変更してください。
Webサーバ定義ファイル(httpsd.conf)ファイルのデフォルト値を次に示します。
-
SSL通信用ポート番号:22266
-
サーバ証明書ファイル名:httpsd.pem
-
秘密鍵ファイル名:httpsdkey.pem
-
SSL通信で使用するTLSのバージョン:TLSv1.2
-
TLSv1.3で使用できる暗号種別:
・TLS_AES_128_GCM_SHA256
・TLS_AES_256_GCM_SHA384
-
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
Webサーバ定義ファイル(httpsd.conf)ファイルの詳細については,「3.4.2 Webサーバ定義ファイル(httpsd.conf)ファイルの設定項目の詳細」を参照してください。
-
-
Webサーバ定義ファイル(httpsd.conf)を編集して,SSL通信のログ出力を有効にする。
Webサーバ定義ファイル(httpsd.conf)ファイル「LogFormat」および「CustomLog」のコメントを解除して,SSL通信のログ出力を有効にします。Windowsの場合の変更例を次に示します。
<変更前>
: #LogFormat "%t %{version}c %{cipher}c %{clientcert}c" hws_ssl #CustomLog "|\"\"C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/sbin/rotatelogs2.exe\" \"C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/logs/ssl\" 10240 8\"" hws_ssl :
<変更後>
: LogFormat "%t %{version}c %{cipher}c %{clientcert}c" hws_ssl CustomLog "|\"\"C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/sbin/rotatelogs2.exe\" \"C:/Program Files/HITACHI/JP1AJS3CSA/uCPSB/httpsd/logs/ssl\" 10240 8\"" hws_ssl :
-
JP1/AJS3 CSA HTTP Serverサービスを再起動する。
-
PEM形式のルート証明書を,通信先のサービス連携ジョブおよびサービス連携監視ジョブの実行先ホストに配置する。
通信先(サービス連携ジョブおよびサービス連携監視ジョブの実行先ホスト側)でJP1/AJS3 for Cloud Service Applicationsサーバのサーバ証明書を検証するため,JP1/AJS3 for Cloud Service Applicationsサーバのサーバ証明書を発行したCAのルート証明書を通信先ホストの任意の場所に配置します。
通信先のホストにルート証明書がすでに配置されている場合,配置されているルート証明書の発行元のCAが,手順3でサーバ証明書を取得したCAと同一かどうか確認してください。
- 同一のCAの場合
-
すでに配置されているルート証明書がそのまま利用できます。ルート証明書を上書きする必要はありません。
- 異なるCAの場合
-
すでに配置されているルート証明書と,取得したルート証明書をまとめてください。この場合,ルート証明書の有効期限が切れても該当部分を適切に入れ替えられるように,個々のルート証明書と結合後のルート証明書の該当部分が対応づけられるようにしておいてください。ルート証明書はBase64でエンコードされているため,結合後のファイルを確認しても,どの部分がどのルート証明書に対応するのかわからなくなります。
詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
(2) サービス連携ジョブおよびサービス連携監視ジョブがSSLで通信するための設定
サービス連携ジョブおよびサービス連携監視ジョブがSSLで通信するための設定手順を次に示します。
-
サービス連携ジョブおよびサービス連携監視ジョブの実行先ホストに,通信するJP1/AJS3 for Cloud Service Applicationsサーバのルート証明書が配置されているか確認する。
JP1/AJS3 for Cloud Service Applicationsサーバのルート証明書の配置は,JP1/AJS3 for Cloud Service ApplicationsがSSLで通信するための設定作業として実施します。詳細は,「3.3.2(1) JP1/AJS3 for Cloud Service ApplicationsがSSLで通信するための設定」を参照してください。
-
SSL通信を有効にする。
サービス連携ジョブおよびサービス連携監視ジョブと該当するJP1/AJS3 for Cloud Service Applicationsサーバの接続設定を記載する接続設定ファイルに,次の内容を記載します。
CAFile=手順1で配置したファイルのフルパス名
初めて接続設定ファイルを作成する場合,設定が必要です。接続設定ファイルの詳細は,「3.5.1 接続設定ファイル」を参照してください。
(3) WebブラウザーがSSLで通信するための設定
WebブラウザーがSSLで通信するための設定手順を次に示します。
-
使用するWebブラウザーでSSL通信を許可する。
WebブラウザーでSSL/TLSを有効にしておく必要があります。設定方法については,使用するWebブラウザーのドキュメントを参照してください。
SSL/TLSを無効にしていると,SSL通信用のURLにアクセスしてもログイン画面が表示されません。また,ログイン後にSSL/TLSの設定を無効にした場合,それ以降の操作ができなくなります。