系统管理指南:网络服务

Procedure如何配置 Apache 2.0 Web 服务器以使用 SSL 内核代理

应使用此过程来改善 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
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”ksslcfg 命令包括在 Network Security 配置文件中。

  2. 停止 Web 服务器。

    此命令将停止将服务器配置为使用 SMF 运行的系统中的 Web 服务器。


    # svcadm disable svc:/network/http:apache2
    

    如果服务尚未转换,请使用以下命令语法停止该服务: /usr/apache2/bin/apachectl stop

  3. 确定要用于 ksslcfg 命令的参数。

    ksslcfg(1M) 手册页中列出了所有选项。必须了解的参数包括:

    • key_format-与 -f 选项一起定义证书和密钥格式。对于 SSL 内核代理,该值应为 pempkcs12

    • key_and_certificate_file-与 -i 选项一起设置存储服务器密钥和证书的文件位置。

    • password_file-与 -p 选项一起选择文件的位置,该文件中应包括用于加密私钥的口令。此口令用来允许无人参与的重新引导。对该文件的权限应为 0400

    • proxy_port-与 -x 选项一起设置 SSL 代理端口。请选择标准端口 80 之外的其他端口。

    • ssl_port-选择服务器应用程序的端口。通常,将此参数设置为 443


    注 –

    不能为 NCA 配置 ssl_portproxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 proxy_port,端口 443 用于 ssl_port


  4. 创建服务实例。

    使用 ksslcfg 命令指定 SSL 代理端口和相关参数。


    ksslcfg create -f key_format -i key_and_certificate_file -p password_file -x proxy_port ssl_port
    
  5. 验证是否已正确创建该实例。

    以下命令报告的服务状态应为“online”。


    # svcs svc:/network/ssl/proxy
    
  6. 配置 Web 服务器以在 SSL 代理端口上侦听。

    编辑 /etc/apache2/http.conf 文件并添加一行,以定义 SSL 代理端口。如果使用服务器 IP 地址,Web 服务器将只在该接口上侦听。该行应如下所示:


    Listen 0.0.0.0:proxy_port
    
  7. 为 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
    
  8. 启用 Web 服务器。


    # svcadm enable svc:/network/http:apache2
    

    如果未使用 SMF 启动该服务,请使用以下命令: /usr/apache2/bin/apachectl startssl


示例 2–3 配置 Apache 2.0 Web 服务器以使用 SSL 内核代理

以下命令将使用 pem 密钥格式创建一个实例。


# ksslcfg create -f pem -i cert_and_key.pem -p file -x 8080 433