第 3 章 環境設定
3.10 SSL の設定
3.10.2 SMEEコマンドで構築する証明書/鍵管理環境のSSL通信
・ Listen
・ LoadModule
・ ServerAdmin
・ ServerName
・ SSLCertExpire
・ SSLConfName
・ User
・ <VirtualHost>
ユーザ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管理ファイルのアク セス権限を変更することを推奨します。
1. エクスプローラを起動します。
2. ユーザPIN管理ファイルを選択して右クリックします。
3. [プロパティ]をクリックします。
4. [セキュリティ]タブをクリックします。
5. プロパティの[セキュリティ]画面で、以下のグループ以外の[アクセス許可]設定に「拒否」を選択して、[OK]ボタン をクリックします。
- Administrators
- SYSTEM
■環境設定ファイル(httpd.conf)の設定
SSL環境は、Webサーバ全体またはバーチャルホストごとに設定できます。
Webサーバ全体/バーチャルホストごとの設定に応じたバーチャルホストの設定例を以下に示します。
・ Webサーバ全体のSSL定義
クライアント認証を行うSSL運用、およびクライアント認証を行わないSSL運用を設定できます。
・ バーチャルホストごとのSSL定義
SSLを使用しない通信とSSLを使用する通信を同時に運用できます。
Webサーバ全体のSSL定義
例
以下のような設定でSSL運用を行う場合
・ ポート番号「443」
・ サーバの管理者のEmailアドレス「[email protected]」
・ サーバのホスト名「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 [email protected] 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アドレス「[email protected]」
・ サーバのホスト名「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 [email protected] 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
・ SSLCertExpire
・ SSLConfName
・ SSLClCACertName
・ SSLCipherSuite
・ SSLEnvDir
・ SSLExec
・ SSLSlotDir
・ SSLTokenLabel
・ SSLUserPINFile
・ SSLVerifyClient
・ SSLVersion
・ User
・ <VirtualHost>