应使用此过程来改善 Apache 2.0 Web 服务器上的 SSL 包进程的性能。
以下过程要求已安装并配置 Apache 2.0 Web 服务器。Solaris 10 发行版中包括 Apache 2.0 Web 服务器。
要使用 SSL 内核代理,服务器私钥和服务器证书需要位于一个文件中。如果只在 ssl.conf 文件中指定了 SSLCertificateFile 参数,则指定的文件可直接用于内核 SSL。如果还指定了 SSLCertificateKeyFile 参数,则需要合并证书文件和私钥文件。合并证书文件和私钥文件的一种方法是运行以下命令:
# cat cert.pem key.pem >cert_and key.pem |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。ksslcfg 命令包括在 Network Security 配置文件中。
停止 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 之外的其他端口。
ssl_port-选择服务器应用程序的端口。通常,将此参数设置为 443。
不能为 NCA 配置 ssl_port 和 proxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 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 |
配置 Web 服务器以在 SSL 代理端口上侦听。
编辑 /etc/apache2/http.conf 文件并添加一行,以定义 SSL 代理端口。如果使用服务器 IP 地址,Web 服务器将只在该接口上侦听。该行应如下所示:
Listen 0.0.0.0:proxy_port |
为 Web 服务器设置 SMF 相关性。
Web 服务器只应在 SSL 内核代理实例之后启动。以下命令将建立该相关性。
# 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 8080 433 |