ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Interstage HTTP Server 2.2運用ガイド
FUJITSU Software

3.10.2 SMEEコマンドで構築する証明書/鍵管理環境のSSL通信

SMEEコマンドで構築する証明書/鍵管理環境のSSL通信を利用する場合の環境設定手順を、以下に示します。


  1. 証明書/鍵管理環境を構築します。証明書/鍵管理環境の構築については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「証明書/鍵管理環境の作成」を参照してください。

  2. 秘密鍵の作成と証明書を取得します。秘密鍵の作成と証明書の取得については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「秘密鍵の作成と証明書の取得」を参照してください。

  3. 証明書とCRLを登録します。証明書とCRLの登録については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「証明書とCRLの登録」を参照してください。

  4. ユーザPINを登録します。詳細については、「ユーザPINの登録」を参照してください。

  5. 環境定義ファイル(httpd.conf)を設定します。詳細については、「環境設定ファイル(httpd.conf)の設定」を参照してください。

  6. Webブラウザに認証局の証明書(発行局証明書)を登録します。認証局の証明書(発行局証明書)のWebブラウザへの登録については、「セキュリティシステム運用ガイド」の「SMEEコマンドによる証明書/鍵管理環境の構築と利用」の「認証局の証明書(発行局証明書)のWebブラウザへの登録」を参照してください。


注意


クライアント認証を行う場合は、スーパユーザ権限以外のユーザが手順1~3の操作を行ってください(セキュリティ上の配慮によりWebサーバのプロセスをスーパユーザ権限以外で設定する必要があるため)。
また、このユーザ、グループを手順5でInterstage HTTP Server 2.2の環境定義ファイルに設定してください。


ユーザPINの登録

ユーザ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管理ファイルのアクセス権限を変更することを推奨します。

  1. エクスプローラを起動します。

  2. ユーザPIN管理ファイルを選択して右クリックします。

  3. [プロパティ]をクリックします。

  4. [セキュリティ]タブをクリックします。

  5. プロパティの[セキュリティ]画面で、以下のグループ以外の[アクセス許可]設定に「拒否」を選択して、[OK]ボタンをクリックします。

    • Administrators

    • SYSTEM


環境設定ファイル(httpd.conf)の設定

SSL環境は、Webサーバ全体またはバーチャルホストごとに設定できます。

Webサーバ全体/バーチャルホストごとの設定に応じたバーチャルホストの設定例を以下に示します。


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

参考

関連ディレクティブ