SMEEコマンドで構築する証明書/鍵管理環境のSSL通信を利用する場合の環境設定手順を、以下に示します。
証明書/鍵管理環境を構築します。証明書/鍵管理環境の構築については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「証明書/鍵管理環境の作成」を参照してください。
秘密鍵の作成と証明書を取得します。秘密鍵の作成と証明書の取得については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「秘密鍵の作成と証明書の取得」を参照してください。
証明書とCRLを登録します。証明書とCRLの登録については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「証明書とCRLの登録」を参照してください。
ユーザPINを登録します。詳細については、「ユーザPINの登録」を参照してください。
環境定義ファイル(httpd.conf)を設定します。詳細については、「環境設定ファイル(httpd.conf)の設定」を参照してください。
Webブラウザに認証局の証明書(発行局証明書)を登録します。認証局の証明書(発行局証明書)のWebブラウザへの登録については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「認証局の証明書(発行局証明書)のWebブラウザへの登録」を参照してください。
注意
クライアント認証を行う場合は、スーパユーザ権限以外のユーザが手順1~3の操作を行ってください(セキュリティ上の配慮によりWebサーバのプロセスをスーパユーザ権限以外で設定する必要があるため)。
また、このユーザ、グループを手順5でInterstage HTTP Server 2.2の環境定義ファイルに設定してください。
ユーザPINを、ユーザPIN管理ファイルに登録します。
ihsregistupinコマンドに、ユーザPINとユーザPIN管理ファイルを指定することで、ユーザPINが暗号化されてユーザPIN管理ファイルに登録されます。
例
ユーザPINの登録例
ユーザPIN(対話入力)を暗号化して、ユーザPIN管理ファイル「d:\ssl\upinfile」に登録する場合
C:\Interstage\F3FMahs\bin\ihsregistupin.exe -f d:\ssl\upinfile -d d:\sslenv\slot
ユーザPIN(対話入力)を暗号化して、ユーザPIN管理ファイル「/home/ssl/upinfile」に登録する場合
/opt/FJSVahs/bin/ihsregistupin -f /home/ssl/upinfile -d /home/sslenv/slot
注意
セキュリティ対策のため、エクスプローラのファイルプロパティを使用して、以下の手順でユーザPIN管理ファイルのアクセス権限を変更することを推奨します。
エクスプローラを起動します。
ユーザPIN管理ファイルを選択して右クリックします。
[プロパティ]をクリックします。
[セキュリティ]タブをクリックします。
プロパティの[セキュリティ]画面で、以下のグループ以外の[アクセス許可]設定に「拒否」を選択して、[OK]ボタンをクリックします。
Administrators
SYSTEM
■環境設定ファイル(httpd.conf)の設定
SSL環境は、Webサーバ全体またはバーチャルホストごとに設定できます。
Webサーバ全体/バーチャルホストごとの設定に応じたバーチャルホストの設定例を以下に示します。
Webサーバ全体のSSL定義
クライアント認証を行うSSL運用、およびクライアント認証を行わないSSL運用を設定できます。
バーチャルホストごとのSSL定義
SSLを使用しない通信とSSLを使用する通信を同時に運用できます。
Webサーバ全体のSSL定義
例
以下のような設定でSSL運用を行う場合
ポート番号「443」
サーバの管理者のEmailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
SSLプロトコルバージョン「SSL3.0」または「SSL3.1」(TLS 1.0)
クライアント認証あり
スロット情報ディレクトリ「d:\ssl\slotdir」
トークンラベル「secret_key_tok」
ユーザPIN管理ファイル「d:\ssl\upinfile」
運用管理ディレクトリ「d:\ssl\envdir」
サイト証明書のニックネーム「server_cert」
クライアントCA証明書のニックネーム「client_cert」
暗号化の方法「SSL_TXT_RSA_WITH_AES_256_CBC_SHA、SSL_TXT_RSA_WITH_AES_128_CBC_SHA、SSL_TXT_RSA_WITH_3DES_EDE_CBC_SHA」
LoadModule ahs_ssl_module "C:/Interstage/F3FMahs/modules/mod_ahs_ssl.so" Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com SSLExec On SSLVersion 3-3.1 SSLVerifyClient require SSLSlotDir d:/ssl/slotdir SSLTokenLabel secret_key_tok SSLUserPINFile d:/ssl/upinfile SSLEnvDir d:/ssl/envdir SSLCertName server_cert SSLClCACertName client_cert SSLCipherSuite RSA-AES-256-SHA:RSA-AES-128-SHA:RSA-3DES-SHA
以下のような設定でSSL運用を行う場合
ポート番号「443」
サーバの管理者のEmailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
証明書/鍵管理環境を構築したユーザのユーザID「user1」
証明書/鍵管理環境を構築したユーザのグループID「group1」
SSLプロトコルバージョン「SSL3.0」または「SSL3.1」(TLS 1.0)
クライアント認証あり
スロット情報ディレクトリ「/home/ssl/slotdir」
トークンラベル「secret_key_tok」
ユーザPIN管理ファイル「/home/ssl/upinfile」
運用管理ディレクトリ「/home/ssl/envdir」
サイト証明書のニックネーム「server_cert」
クライアントCA証明書のニックネーム「client_cert」
暗号化の方法「SSL_TXT_RSA_WITH_AES_256_CBC_SHA、SSL_TXT_RSA_WITH_AES_128_CBC_SHA、SSL_TXT_RSA_WITH_3DES_EDE_CBC_SHA」
LoadModule ahs_ssl_module /opt/FJSVahs/modules/mod_ahs_ssl.so Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com User user1 Group group1 SSLExec On SSLVersion 3-3.1 SSLVerifyClient require SSLSlotDir /home/ssl/slotdir SSLTokenLabel secret_key_tok SSLUserPINFile /home/ssl/upinfile SSLEnvDir /home/ssl/envdir SSLCertName server_cert SSLClCACertName client_cert SSLCipherSuite RSA-AES-256-SHA:RSA-AES-128-SHA:RSA-3DES-SHA
バーチャルホストごとのSSL定義
例
以下のような設定で運用を行う場合
スロット情報ディレクトリ「d:\ssl\slotdir」
トークンラベル「secret_key_tok」
ユーザPIN管理ファイル「d:\ssl\upinfile」
SSLを使用しないバーチャルホスト
ポート番号「80」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「C:\www\public」
SSLを使用するバーチャルホスト(クライアント認証なし)
ポート番号「443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「C:\www\secure1」
SSLプロトコルバージョン「SSL2.0」
運用管理ディレクトリ「d:\ssl\envdir」
サイト証明書のニックネーム「cert_for_purchase」
アクセスログのログファイル名「C:\Interstage\F3FMahs\logs\accesslog_secure1」
エラーログのログファイル名「C:\Interstage\F3FMahs\logs\errorlog_secure1」
SSLを使用するバーチャルホスト(クライアント認証あり)
ポート番号「8443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「C:\www\secure2」
SSLプロトコルバージョン「SSL3.0」または「SSL3.1」(TLS 1.0)
運用管理ディレクトリ「d:\ssl\envdir」
サイト証明書のニックネーム「cert_for_manager」
クライアントCA証明書のニックネーム「CACert_InfoCA」
暗号化の方法「SSL_TXT_RSA_WITH_AES_256_CBC_SHA、SSL_TXT_RSA_WITH_AES_128_CBC_SHA、SSL_TXT_RSA_WITH_3DES_EDE_CBC_SHA」
アクセスログのログファイル名「C:\Interstage\F3FMahs\logs\accesslog_secure2」
エラーログのログファイル名「C:\Interstage\F3FMahs\logs\errorlog_secure2」
LoadModule ahs_ssl_module "C:/Interstage/F3FMahs/modules/mod_ahs_ssl.so" Listen 80 Listen 443 Listen 8443 SSLSlotDir d:/ssl/slotdir SSLTokenLabel secret_key_tok SSLUserPINFile d:/ssl/upinfile <VirtualHost 192.168.0.1:80> ServerName main.example.com DocumentRoot C:/www/public </VirtualHost> <VirtualHost 192.168.0.1:443> ServerName main.example.com DocumentRoot C:/www/secure1 SSLExec On SSLVersion 2 SSLEnvDir d:/ssl/envdir SSLCertName cert_for_purchase CustomLog "||\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/accesslog_secure1\" 1 5" ahs-analysis ErrorLog "||\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/errorlog_secure1\" 1 5" </VirtualHost> <VirtualHost 192.168.0.1:8443> ServerName main.example.com DocumentRoot C:/www/secure2 SSLExec On SSLVersion 3-3.1 SSLVerifyClient require SSLEnvDir d:/ssl/envdir SSLCertName cert_for_manager SSLClCACertName CACert_InfoCA SSLCipherSuite RSA-AES-256-SHA:RSA-AES-128-SHA:RSA-3DES-SHA CustomLog "||\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/accesslog_secure2\" 1 5" ahs-analysis ErrorLog "||\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/errorlog_secure2\" 1 5" </VirtualHost>
以下のような設定で運用を行う場合
証明書/鍵管理環境を構築したユーザのユーザID「user1」
証明書/鍵管理環境を構築したユーザのグループID「group1」
スロット情報ディレクトリ「/home/ssl/slotdir」
トークンラベル「secret_key_tok」
ユーザPIN管理ファイル「/home/ssl/upinfile」
SSLを使用しないバーチャルホスト
ポート番号「80」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「/home/www/public」
SSLを使用するバーチャルホスト(クライアント認証なし)
ポート番号「443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「/home/www/secure1」
SSLプロトコルバージョン「SSL2.0」
運用管理ディレクトリ「/home/ssl/envdir」
サイト証明書のニックネーム「cert_for_purchase」
アクセスログのログファイル名「/opt/FJSVahs/logs/accesslog_secure1」
エラーログのログファイル名「/opt/FJSVahs/logs/errorlog_secure1」
SSLを使用するバーチャルホスト(クライアント認証あり)
ポート番号「8443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「/home/www/secure2」
SSLプロトコルバージョン「SSL3.0」または「SSL3.1」(TLS 1.0)
運用管理ディレクトリ「/home/ssl/envdir」
サイト証明書のニックネーム「cert_for_manager」
クライアントCA証明書のニックネーム「CACert_InfoCA」
暗号化の方法「SSL_TXT_RSA_WITH_AES_256_CBC_SHA、SSL_TXT_RSA_WITH_AES_128_CBC_SHA、SSL_TXT_RSA_WITH_3DES_EDE_CBC_SHA」
アクセスログのログファイル名「/opt/FJSVahs/logs/accesslog_secure2」
エラーログのログファイル名「/opt/FJSVahs/logs/errorlog_secure2」
LoadModule ahs_ssl_module /opt/FJSVahs/modules/mod_ahs_ssl.so Listen 80 Listen 443 Listen 8443 User user1 Group group1 SSLSlotDir /home/ssl/slotdir SSLTokenLabel secret_key_tok SSLUserPINFile /home/ssl/upinfile <VirtualHost 192.168.0.1:80> ServerName main.example.com DocumentRoot /home/www/public </VirtualHost> <VirtualHost 192.168.0.1:443> ServerName main.example.com DocumentRoot /home/www/secure1 SSLExec On SSLVersion 2 SSLEnvDir /home/ssl/envdir SSLCertName cert_for_purchase CustomLog "|/opt/FJSVahs/bin/ahsrlog -s /opt/FJSVahs/logs/accesslog_secure1 1 5" ahs-analysis ErrorLog "|/opt/FJSVahs/bin/ahsrlog -s /opt/FJSVahs/logs/errorlog_secure1 1 5" </VirtualHost> <VirtualHost 192.168.0.1:8443> ServerName main.example.com DocumentRoot /home/www/secure2 SSLExec On SSLVersion 3-3.1 SSLVerifyClient require SSLEnvDir /home/ssl/envdir SSLCertName cert_for_manager SSLClCACertName CACert_InfoCA SSLCipherSuite RSA-AES-256-SHA:RSA-AES-128-SHA:RSA-3DES-SHA CustomLog "|/opt/FJSVahs/bin/ahsrlog -s /opt/FJSVahs/logs/accesslog_secure2 1 5" ahs-analysis ErrorLog "|/opt/FJSVahs/bin/ahsrlog -s /opt/FJSVahs/logs/errorlog_secure2 1 5" </VirtualHost>
注意
サイト証明書および認証局の証明書(発行局証明書)には、有効期限があります。この有効期限が切れた状態でWebサーバ運用を続行した場合、エラーメッセージ「ahs00504」/「ahs00505」が出力され、Webサーバの起動処理/通信処理を行うことができません。cmdspcertコマンドで証明書の有効期間を確認して、有効期限が切れる前に新しい証明書を取得して登録してください。証明書の登録方法については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」-「証明書/鍵管理環境の管理」の「証明書を更新する(証明書の有効期限が切れる)場合」を参照してください。登録後は、Webサーバを再起動する必要があります。
なお、サイト証明書および認証局の証明書(発行局証明書)の有効期限が切れる前に、証明書の有効日数を通知する警告メッセージ「ahs00536」/「ahs00537」を、出力タイミングを指定して出力させることができます。
環境定義ファイル(httpd.conf)の定義例を以下に示します。
例)以下のタイミングで、サイト証明書および認証局の証明書(発行局証明書)の有効日数を通知する警告メッセージを出力させる場合
証明書の有効期限が切れる15日前から有効期間満了日までの間のWebサーバ起動時
証明書の有効期限が切れる10日前の9:30 (Webサーバ運用中)
証明書の有効期限が切れる3日前の9:30 (Webサーバ運用中)
証明書の有効期限が切れる1日前の9:30 (Webサーバ運用中)
SSLCertExpire All 15 10,3,1:093000
参考
関連ディレクティブ
CustomLog
DocumentRoot
ErrorLog
Group
Listen
LoadModule
ServerAdmin
ServerName
User
<VirtualHost>