SSL環境設定には以下のディレクティブの設定が必要となります。
ディレクティブ | 説明 |
---|---|
SSLEngine | SSL/TLS使用を切り替えます。 On | Off |
SSLProtocol | 使用可能なSSL / TLSプロトコルバージョンを指定します。 推奨値:TLSv1.2 +TLSv1.3 (TLSv1.2とTLSv1.3を使用) |
SSLSessionCache | グローバル/プロセス間SSLセッションキャッシュのタイプを指定します。 推奨値:"shmcb:/opt/FJSVahs/logs/ssl_scache(512000)" ※mod_socache_shmcbのロードが必要です。 |
SSLSessionCacheTimeout | SSLセッションキャッシュのタイムアウトまでの秒数 |
SSLCertificateFile | サイト証明書及びCA(中間含む)証明書を指定します。 |
SSLCertificateKeyFile | サイト秘密鍵を指定します。 |
SSLCACertificateFile | クライアント認証時の受け入れ可能な認証局の証明書を指定します。(*1) |
SSLCipherSuite | 使用可能な暗号リストを指定します。 |
SSLVerifyClient | クライアント認証の証明書検証レベルを指定します。(*1) none | optional | require クライアント認証を必須とする場合、requireを指定してください。 |
SSLVerifyDepth | クライアント証明書の認証局階層最大数を指定します。(*1) |
SSLCARevocationCheck | 証明書失効リストチェックを有効にします。(*1) chain | leaf | none |
SSLCARevocationFile | CRLを指定します。(*1) |
SSLUserPINFile | パスフレーズ管理ファイルを指定します。 |
(*1) 設定の詳細は、「3.10 クライアント認証の設定」を参照してください。
SSL環境は、Webサーバ全体またはバーチャルホストごとに設定できます。
Webサーバ全体/バーチャルホストごとの設定に応じたバーチャルホストの設定例を以下に示します。
Webサーバ全体のSSL定義
クライアント認証を行うSSL運用、およびクライアント認証を行わないSSL運用を設定できます。
バーチャルホストごとのSSL定義
SSLを使用しない通信とSSLを使用する通信を同時に運用できます。
Webサーバ全体のSSL定義
例
以下のような設定でSSL運用(クライアント認証なし)を行う場合
ポート番号「443」
サーバの管理者のE-mailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
パスフレーズ管理ファイル「c:\ahs\sslenv\sslcert\upinfile」
サイト証明書「c:\ahs\sslenv\sslcert\cert\server.pem」
サイト秘密鍵「c:\ahs\sslenv\sslcert\server.key」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile c:\ahs\sslenv\sslcert\cert\server.pem SSLCertificateKeyFile c:\ahs\sslenv\sslcert\server.key SSLUserPINFile c:\ahs\sslenv\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
以下のような設定でSSL運用(クライアント認証なし)を行う場合
ポート番号「443」
サーバの管理者のE-mailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
パスフレーズ管理ファイル「/export/home/ahs/sslcert/upinfile」
サイト証明書「/export/home/ahs/sslcert/server.pem」
サイト秘密鍵「/export/home/ahs/sslcert/server.key」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile /export/home/ahs/sslcert/server.pem SSLCertificateKeyFile /export/home/ahs/sslcert/server.key SSLUserPINFile /export/home/ahs/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
例
以下のような設定でSSL運用(クライアント認証あり)を行う場合
ポート番号「443」
サーバの管理者のE-mailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
パスフレーズ管理ファイル「c:\ahs\sslenv\sslcert\upinfile」
サイト証明書「c:\ahs\sslenv\sslcert\cert\server.pem」
サイト秘密鍵「c:\ahs\sslenv\sslcert\server.key」
認証局証明書「c:\ahs\sslenv\sslcert\cert\ca.pem」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile c:\ahs\sslenv\sslcert\cert\server pem SSLCertificateKeyFile c:\ahs\sslenv\sslcert\server.key SSLCACertificateFile c:\ahs\sslenv\sslcert\cert\ca.pem SSLVerifyClient require SSLVerifyDepth 1 SSLCARevocationCheck chain SSLCARevocationFile c:\ahs\sslenv\sslcert\crl\crl_list.crl SSLUserPINFile c:\ahs\sslenv\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
以下のような設定でSSL運用(クライアント認証あり)を行う場合
ポート番号「443」
サーバの管理者のE-mailアドレス「webmaster@main.example.com」
サーバのホスト名「main.example.com」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
パスフレーズ管理ファイル「/export/home/ahs/sslcert/upinfile」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
Listen 443 ServerAdmin webmaster@main.example.com ServerName main.example.com SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile /export/home/ahs/sslcert/server.pem SSLCertificateKeyFile /export/home/ahs/sslcert/server.key SSLCACertificateFile /export/home/ahs/sslcert/cert/ca.pem SSLUserPINFile /export/home/ahs/sslcert/upinfile SSLVerifyClient require SSLVerifyDepth 1 SSLCARevocationCheck chain SSLCARevocationFile /export/home/ahs/sslcert/crl/crl_list.crl 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
バーチャルホストごとのSSL定義
例
以下のような設定で運用を行う場合
パスフレーズ管理ファイル「c:\ahs\sslenv\sslcert\upinfile」
SSLを使用しないバーチャルホスト
ポート番号「80」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「C:\www\public」
SSLを使用するバーチャルホスト(クライアント認証あり)
ポート番号「443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「C:\www\secure」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
サイト証明書「c:\ahs\sslenv\sslcert\cert\server.pem」
サイト秘密鍵「c:\ahs\sslenv\sslcert\server.key」
認証局証明書「c:\ahs\sslenv\sslcert\cert\ca.pem」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
アクセスログのログファイル名「C:\Interstage\F3FMahs\logs\accesslog_secure」
エラーログのログファイル名「C:\Interstage\F3FMahs\logs\errorlog_secure」
Listen 80 Listen 443 SSLUserPINFile c:\ahs\sslenv\sslcert\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\secure SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile c:\ahs\sslenv\sslcert\cert\server.pem SSLCertificateKeyFile c:\ahs\sslenv\sslcert\server.key SSLCACertificateFile c:\ahs\sslenv\sslcert\cert\ca.pem SSLVerifyClient require SSLVerifyDepth 1 SSLCARevocationCheck chain SSLCARevocationFile c:\ahs\sslenv\sslcert\cert\crl\crl_list.crl 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 CustomLog "|\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/accesslog_secu re\" 1 5" ahs-analysis ErrorLog "|\"C:/Interstage/F3FMahs/bin/ahsrlog.exe\" -s \"C:/Interstage/F3FMahs/logs/errorlog_secure \" 1 5"</VirtualHost>
以下のような設定で運用を行う場合
パスフレーズ管理ファイル「/export/home/ahs/sslcert/upinfile」
SSLを使用しないバーチャルホスト
ポート番号「80」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「/home/www/public」
SSLを使用するバーチャルホスト(クライアント認証あり)
ポート番号「443」
サーバのホスト名「main.example.com」
公開用ルートディレクトリ「/home/www/secure」
SSLプロトコルバージョン「TLSv1.2 TLSv1.3を使用」
暗号化の方法
「TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」
「TLS_DHE_RSA_WITH_AES_256_GCM_SHA384」
「TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256」
「TLS_AES_256_GCM_SHA384」
「TLS_CHACHA20_POLY1305_SHA256」
「TLS_AES_128_GCM_SHA256」
アクセスログのログファイル名「/opt/FJSVahs/logs/accesslog_secure」
エラーログのログファイル名「/opt/FJSVahs/logs/errorlog_secure」
Listen 80 Listen 443 SSLUserPINFile /export/home/ahs/sslcert/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/secure SSLEngine On SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile /export/home/ahs/sslcert/server.pem SSLCertificateKeyFile /export/home/ahs/sslcert/server.key SSLCACertificateFile /export/home/ahs/sslcert/cert/ca.pem SSLVerifyClient require SSLVerifyDepth 1 SSLCARevocationCheck chain SSLCARevocationFile /export/home/ahs/sslcert/crl/crl_list.crl 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 CustomLog "|/opt/FJSVahs/bin/ahsrlog -s \"/opt/FJSVahs/logs/accesslog_secure\" 1 5" ahs-analysis ErrorLog "|/opt/FJSVahs/bin/ahsrlog -s \"/opt/FJSVahs/logs/errorlog_secure\" 1 5" </VirtualHost>
参考
関連ディレクティブ
CustomLog
DocumentRoot
ErrorLog
Group
Listen
LoadModule
ServerAdmin
ServerName
SSLEngine
SSLProtocol
SSLCertificateFile
SSLCertificateKeyFile
SSLCACertificateFile
SSLCipherSuite
SSLVerifyClient
SSLVerifyDepth
SSLCARevocationCheck
SSLCARevocationFile
User
<VirtualHost>