Apache 2.0 Web サーバー上で SSL パケット処理のパフォーマンスを改善するには、次の手順を使用してください。
次の手順を使用するには、Apache 2.0 Web サーバーのインストールと設定が完了している必要があります。Apache 2.0 Web サーバーは、Solaris 10 リリースに含まれています。
SSL カーネルプロキシを使用するには、サーバーの非公開鍵と証明書が単一のファイル内に存在している必要があります。ssl.conf ファイル内に SSLCertificateFile パラメータだけが指定されている場合、そこに指定されたファイルを直接、カーネル SSL 用として使用できます。SSLCertificateKeyFile パラメータも指定されている場合、証明書ファイルと非公開鍵ファイルを 1 つにまとめる必要があります。証明書ファイルと鍵ファイルを 1 つにまとめる方法の 1 つは、次のコマンドを実行することです。
# cat cert.pem key.pem >cert-and-key.pem |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。ksslcfg コマンドは、Network Security プロファイルに含まれています。
Web サーバーを停止します。
次のコマンドは、Web サーバーが SMF を使って実行されるように設定されているシステム上の Web サーバーを停止します。
# svcadm disable svc:/network/http:apache2 |
サービスがまだ変換されていない場合には、次のコマンド構文を使ってサービスを停止します。 /usr/apache2/bin/apachectl stop
ksslcfg コマンドで使用するパラメータを決定します。
オプションの完全な一覧については、ksslcfg(1M)情報を指定する必要のあるパラメータは、次のとおりです。
key-format – -f オプションとともに使用し、証明書と鍵の形式を定義します。SSL カーネルプロキシの場合、pem、pkcs12 のいずれかの値を指定してください。
key-and-certificate-file – -i オプションとともに使用し、サーバーの鍵と証明書の格納先となるファイルの場所を設定します。
password-file– -p オプションとともに使用し、非公開鍵の暗号化に使用するパスワードが含まれているファイルの場所を選択します。このパスワードは、自動再起動を実現するために使用されます。このファイルのアクセス権は、0400 にしてください。
proxy-port – -x オプションとともに使用し、SSL プロキシポートを設定します。標準ポート 80 とは別のポートを選択します。Web サーバーは SSL プロキシポートを待機します。
ssl-port – SSL カーネルプロキシが待機するポートを選択します。これは通常、443 に設定されます。
ssl-port と proxy-port の値を NCA 用として設定することはできません。なぜなら、これらのポートは SSL カーネルプロキシ専用として使用されるからです。通常、ポート 80 が NCA 用として、ポート 8443 が proxy-port 用として、443 が ssl-port 用として、それぞれ使用されます。
サービスインスタンスを作成します。
ksslcfg コマンドで、SSL プロキシポートと関連パラメータを指定します。
ksslcfg create -f key-format -i key-and-certificate-file -p password-file -x proxy-port ssl-port |
インスタンスが正しく作成されたことを確認します。
次のコマンドによって報告されるサービスの状態は「online」です。
# svcs svc:/network/ssl/proxy |
SSL プロキシポート上で待機するように Web サーバーを設定します。
/etc/apache2/http.conf ファイルを編集し、SSL プロキシポートを定義するための行を 1 行追加します。サーバーの IP アドレスを使用した場合、Web サーバーはそのインタフェース上でのみ待機します。この行は次のようになります。
Listen 0.0.0.0:proxy-port |
Web サーバーの SMF 依存関係を設定します。
SSL カーネルプロキシインスタンスの起動後に Web サーバーが起動されるようにすべきです。次のコマンドは、そうした依存関係を確立します。
# svccfg -s svc:/network/http:apache2 svc:/network/http:apache2> addpg kssl dependency svc:/network/http:apache2> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 svc:/network/http:apache2> setprop kssl/grouping = astring: require_all svc:/network/http:apache2> setprop kssl/restart_on = astring: refresh svc:/network/http:apache2> setprop kssl/type = astring: service svc:/network/http:apache2> end |
Web サーバーを有効にします。
# svcadm enable svc:/network/http:apache2 |
SMF を使ってサービスが起動されない場合は、次のコマンドを使用します。 /usr/apache2/bin/apachectl startssl
次のコマンドは、pem 鍵形式を使ってインスタンスを作成します。
# ksslcfg create -f pem -i cert-and-key.pem -p file -x 8443 443 |