HTTPS通信を行うためには、下記の手順で証明書/鍵管理の環境を作成する必要があります。使用するコマンドの詳細は、“Systemwalker Operation Manager リファレンス集”を参照してください。
1. 証明書/鍵管理環境の作成
SSL使用時の証明書/鍵管理を行うディレクトリを作成します。
証明書、秘密鍵管理のためOS提供のコマンド等でディレクトリを作成します。
作成例を以下に示します。
【Windows版】
mkdir d:\mpahso\sslcert 運用管理ディレクトリ mkdir d:\mpahso\sslcert\cert 証明書管理ディレクトリ
【UNIX版】
# mkdir -p /export/home/mpahso/sslcert 運用管理ディレクトリ # mkdir -p /export/home/mpahso/sslcert/cert 証明書管理ディレクトリ
2. 秘密鍵の作成と証明書の取得
認証局(証明書発行局)に証明書の発行を依頼し、証明書を取得します。
CSR(証明書取得申請書)作成の前に、秘密鍵を作成します。
秘密鍵の作成とCSR(証明書取得申請書)の作成
認証局へ証明書の発行を依頼するための、CSR(証明書取得申請書)を作成します。
以下のコマンドを順に実行することで、秘密鍵を作成し、その後、CSR(証明書取得申請書)を作成します。
作成例を以下に示します。CSR(証明書取得申請書)の作成(openssl reqサブコマンド)では、必ず-configオプションを指定してください。
【Windows版】
c:\Systemwalker\MPWALKER.JM\mpahs\bin\openssl.exe genrsa -aes256 -out d:\mpahso\sslcert\server.key 2048 (以下はコマンド実行結果です) Generating RSA private key, 2048 bit long modulus ......+++ ...........++ e is 65537 (0x10001) Enter pass phrase for server.key: (注) Verifying - Enter pass phrase for server.key: (注)
c:\Systemwalker\MPWALKER.JM\mpahs\bin\openssl.exe req -new -key d:\mpahso\sslcert\server.key -out d:\mpahso\sslcert\server.csr -config c:\Systemwalker\MPWALKER.JM\mpahs\conf\openssl.cnf -subj "/C=JP/ST=Shizuoka/L=Shizuoka-shi/O=fujitsu/OU=4-1f/CN=www.example.com" (以下はコマンド実行結果です) Enter pass phrase for server.key: (注)
【UNIX版】
# /opt/FJSVftlo/mpahs/oss/openssl/bin/openssl genrsa -aes256 -out /export/home/mpahso/sslcert/server.key 2048 (以下はコマンド実行結果です) Generating RSA private key, 2048 bit long modulus ......+++ ...........++ e is 65537 (0x10001) Enter pass phrase for server.key: (注) Verifying - Enter pass phrase for server.key: (注)
# /opt/FJSVftlo/mpahs/oss/openssl/bin/openssl req -new -key /export/home/mpahso/sslcert/server.key -out /export/home/mpahso/sslcert/server.csr -config /opt/FJSVftlo/mpahs/oss/openssl/ssl/openssl.cnf -subj "/C=JP/ST=Shizuoka/L=Shizuoka-shi/O=fujitsu/OU=4-1f/CN=www.example.com" (以下はコマンド実行結果です) Enter pass phrase for server.key: (注)
注) 本文字列が表示された場合は、パスフレーズを128バイト以内の半角英数字の文字列で入力してください。なお、入力される文字はエコーバックされません。本コマンドで入力したパスフレーズは、“4. パスフレーズの登録”でも使用します
証明書の発行依頼
作成したCSR(証明書取得申請書)を認証局へ送付し、サイト証明書の発行を依頼します。
依頼方法は認証局の指定方法に従ってください。
証明書の取得
認証局により署名された証明書をPEM形式(Base64エンコーディングデータ)で取得します。
PEM形式の証明書は、以下のようなデータ形式をしています。
-----BEGIN CERTIFICATE----- … (Base64エンコードされた証明書データ) … -----END CERTIFICATE-----
取得方法は認証局の指定方法に従ってください。
3. 証明書の配置
取得した証明書を証明書/鍵管理環境に配置します。
証明書は、証明書/鍵管理環境の構築で作成したディレクトリに配置してください。運用で使用する証明書(サイト証明書やクライアント証明書)を発行した認証局の証明書は、すべて配置してください。
サイト証明書の配置
認証局から発行されたサイト証明書(server.pem)を証明書/鍵管理環境へ配置します。
【Windows版】
move server.pem d:\mpahso\sslcert\cert
【UNIX版】
# mv server.pem /export/home/mpahso/sslcert/cert
登録後は、証明書の有効期間を参照し、証明書の更新が必要となる時期を確認しておいてください。有効期間は、openssl x509コマンドで確認できます。
注意
サイト証明書および認証局の証明書(発行局証明書)の有効期限について
サイト証明書および認証局の証明書(発行局証明書)には、有効期限があります。この有効期限が切れた状態でWebコンソール/Web APIの運用を続行した場合、クライアントからのSSL通信時に警告メッセージが表示されるようになります。openssl x509コマンドで証明書の有効期間を確認して、有効期限が切れる前に新しい証明書を取得して登録してください。登録後は、Systemwalker Operation Mangerを再起動する必要があります。
証明書の有効期間を確認する例を、以下に示します。
【Windows版】
Systemwalker Operation Managerインストールディレクトリ\MPWALKER.JM\mpahs\bin\openssl.exe x509 -noout -dates -in d:\mpahso\sslcert\cert\server.pem
【UNIX版】
# /opt/FJSVftlo/mpahs/oss/openssl/bin/openssl x509 -noout -dates -in /export/home/mpahso/sslcert/cert/server.pem
ルートCA証明書、中間CA証明書の配置
ルートCA証明書を入手したら、登録する前にフィンガープリントを確認します。ルートCA証明書のフィンガープリントの情報は、認証局により安全な方法で提供されています。入手した認証局のルートCA証明書をopenssl x509コマンドで表示し、フィンガープリントが一致していることを確認してください。
なお、フィンガープリントは証明書の一部から算出されたハッシュ値であるため、証明書が偽物であったり改ざんされたりした場合には異なる値になります。算出するために利用するアルゴリズムによっても値が異なるため、同じアルゴリズムを用いて算出されたフィンガープリントを比較してください。
認証局から入手したルートCA証明書のフィンガープリントを表示する例を、以下に示します。認証局から提供されたフィンガープリント情報にあわせたオプション[-sha1|-sha256|-md5]を選択し、表示された値と比較してください。
【Windows版】
認証局のルートCA証明書がd:\mpahso\sslcert\server-root-ca.pemに格納されている場合の実行例
c:\Systemwalker\MPWALKER.JM\mpahs\bin\openssl.exe x509 [-sha1|-sha256|-md5] -fingerprint -noout -in d:\mpahso\sslcert\server-root-ca.pem
-md5オプション時: MD5 Fingerprint=40 79 98 2F 37 12 31 7C AE E7 B4 AB 78 C8 A2 28 -sha1オプション時: SHA1 Fingerprint=07 28 BE 26 94 89 6D F9 ... ←(16進数で20バイト分表示されます。) -sha256オプション時: SHA256 Fingerprint=F7 16 00 6E A1 6E A2 14 ... ←(16進数で32バイト分表示されます。)
【UNIX版】
認証局のルートCA証明書が/export/home/mpahso/sslcert/server-root-ca.pemに格納されている場合の実行例
# /opt/FJSVftlo/mpahs/oss/openssl/bin/openssl x509 [-sha1|-sha256|-md5] -fingerprint -noout -in /export/home/mpahso/sslcert/server-root-ca.pem
-md5オプション時: MD5 Fingerprint=40 79 98 2F 37 12 31 7C AE E7 B4 AB 78 C8 A2 28 -sha1オプション時: SHA1 Fingerprint=07 28 BE 26 94 89 6D F9 ... ←(16進数で20バイト分表示されます。) -sha256オプション時: SHA256 Fingerprint=F7 16 00 6E A1 6E A2 14 ... ←(16進数で32バイト分表示されます。)
認証局によっては、認証局のルートCA証明書とサイト証明書のほかに、中間CA証明書が用意されている場合があるので、各認証局に確認し、中間CA証明書を入手してください。
中間CA証明書はサイト証明書ファイルにマージして使用します。
ルートCA証明書のマージは必須ではありませんが、ルートCA証明書を含めたpemファイルでの運用を推奨します。
中間CA証明書(server-chain-ca.pem)、ルートCA証明書(server-root-ca.pem)をサイト証明書にマージする場合の例を、以下に示します。
【Windows版】
type server-chain-ca.pem >> d:\mpahso\sslcert\cert\server.pem type server-root-ca.pem >> d:\mpahso\sslcert\cert\server.pem type d:\mpahso\sslcert\cert\server.pem (内容を表示します) -----BEGIN CERTIFICATE----- … (サイト証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- … (中間CA証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- … (ルートCA証明書データ) … -----END CERTIFICATE-----
【UNIX版】
# cat server-chain-ca.pem >> /export/home/mpahso/sslcert/cert/server.pem # cat server-root-ca.pem >> /export/home/mpahso/sslcert/cert/server.pem # cat /export/home/mpahso/sslcert/cert/server.pem (内容を表示します) -----BEGIN CERTIFICATE----- … (サイト証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- … (中間CA証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- … (ルートCA証明書データ) … -----END CERTIFICATE-----
鍵交換パラメタの設定
鍵交換でDHEを使用する場合は、セキュリティ対策としてパラメタ長を2048ビット以上に設定する必要があります。
RFC3526に記載されている推奨パラメタ(2048ビット)をサイト証明書にマージします。
以下のPEM形式パラメタをハイフンも含めてマージしてください。
-----BEGIN DH PARAMETERS----- MIIBCAKCAQEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq 5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAg== -----END DH PARAMETERS-----
4. パスフレーズの登録
パスフレーズを、パスフレーズ管理ファイルに登録します。
ahsregistupinコマンドに、パスフレーズとパスフレーズ管理ファイルを指定することで、パスフレーズが暗号化されてパスフレーズ管理ファイルに登録されます。
[パスフレーズの登録例]
【Windows版】
パスフレーズ(対話入力)を暗号化して、パスフレーズ管理ファイル“d:\mpahso\sslcert\upinfile”に登録する場合
c:\systemwalker\MPWALKER.JM\mpahs\bin\ahsregistupin.exe -f d:\mpahso\sslcert\upinfile
【UNIX版】
パスフレーズ(対話入力)を暗号化して、パスフレーズ管理ファイル“/export/home/mpahso/sslcert/upinfile”に登録する場合
/opt/FJSVftlo/mpahs/bin/ahsregistupin -f /export/home/mpahso/sslcert/upinfile
5. 環境定義ファイル(httpd.conf)の設定
Webサーバの環境定義ファイル“httpd.conf”にSSLの設定を行います。
“httpd.conf”は、以下に格納されています。
【Windows版】
Systemwalker Operation Managerインストールディレクトリ\mpwalker.jm\mpahs\conf\httpd.conf |
【UNIX版】
/opt/FJSVftlo/mpahs/conf/httpd.conf |
環境定義ファイルの定義例を以下に示します。
【Windows版】
以下のような設定でSSL運用を行う場合
SSLプロトコルバージョン:“TLSv1.2 TLSv1.3を使用”
パスフレーズ管理ファイル:“d:\mpahso\sslcert\upinfile”
サイト証明書:“d:\mpahso\sslcert\cert\server.pem”
サイト秘密鍵:“d:\mpahso\sslcert\server.key”
[httpd.conf 編集例]
ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLHonorCipherOrder On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile d:\mpahso\sslcert\cert\server.pem SSLCertificateKeyFile d:\mpahso\sslcert\server.key SSLUserPINFile d:\mpahso\sslcert\upinfile SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305 SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
【UNIX版】
以下のような設定でSSL運用を行う場合
SSLプロトコルバージョン:“TLSv1.2 TLSv1.3を使用”
パスフレーズ管理ファイル:“/export/home/mpahso/sslcert/upinfile”
サイト証明書:“/export/home/mpahso/sslcert/cert/server.pem”
サイト秘密鍵:“/export/home/mpahso/sslcert/server.key”
[httpd.conf 編集例]
ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLHonorCipherOrder On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile /export/home/mpahso/sslcert/cert/server.pem SSLCertificateKeyFile /export/home/mpahso/sslcert/server.key SSLUserPINFile /export/home/mpahso/sslcert/upinfile SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305: DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305 SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
証明書/鍵管理環境の退避・復元方法を説明します。
環境定義ファイル(httpd.conf)の該当ディレクティブ(注)で指定している資源を、バックアップ用ディレクトリに退避してください。
退避した資源を、環境定義ファイル(httpd.conf)の該当ディレクティブ(注)で指定されているパスに復元してください。
(注) 対象のディレクティブ - サイト証明書(SSLCertificateFileディレクティブで指定したファイル) - サイト秘密鍵(SSLCertificateKeyFileディレクティブで指定したファイル) - パスフレーズ管理ファイル(SSLUserPINFileディレクティブで指定したファイル)