用于 Apache 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

如何使用 mod_ssl 安装和配置 Apache 软件

此过程用于安装安全版本的 Apache Webserver。 有关安装不安全的 Apache Webserver 的过程,请参见安装不安全的 Apache Webserver

  1. 成为某个群集成员的超级用户。

  2. 安装 Apache 软件,包括 mod_ssl

    要安装 mod_ssl,请参见 Apache 安装文档或 http://www.modssl.org 中的安装说明。

  3. 更新 httpd.conf 配置文件。

    • 设置 ServerName 指令。

    • 设置 BindAddress 指令(可选)。

    • 设置 ServerTypeServerRootDocumentRootScriptAliasLockFile 指令。

    • 设置 Port 指令,使其具有与 Port_list 标准资源特性相同的编号。 有关详细信息,请参见步骤 4

    • 如果您选择将 Apache 软件作为代理服务器运行,请进行更改以作为代理服务器运行。 有关详细信息,请参见 Apache 文档。 如果要将 Apache 软件作为代理服务器运行,CacheRoot 设置必须指向群集文件系统中的某个位置。

  4. 检验 httpd.conf 文件中的一个或多个端口号是否与 Port_list 标准资源特性中的端口号相匹配。

    您可以编辑 httpd.conf 配置文件以更改其中的一个或多个端口号,使其与标准 Sun Cluster 资源特性中的缺省值(端口 80)相匹配。 或者,当您配置 Sun Cluster HA for Apache 时,可以将 Port_list 标准特性设置为与 httpd.conf 文件中的设置相匹配。

  5. 安装所有证书和密钥。

  6. Bin_dir 目录中,创建一个名为 keypass 的文件。 确保除属主之外其他人均无访问此文件的权限。


    # cd Bin_dir
    # touch keypass
    # chmod 700 keypass
    
  7. 如果您使用的是加密专用密钥,请执行以下步骤 a 和步骤 b。

    1. httpd.conf 文件中,查找 SSLPassPhraseDialog 指令并按以下内容进行修改。


      # SSLPassPhraseDialog exec:/Bin_dir/keypass
      

      有关 SSLPassPhraseDialog 指令的详细信息,请参见 mod_ssl 文档。

    2. 编辑 keypass 文件,以便其针对主机和端口显示加密密钥的口令。

      此文件将使用 server:port algorithm 变量调用。 请确保在使用正确的参数调用该文件时,它可以为每个加密密钥显示口令。

      随后,当您尝试手动启动 Webserver 时,它就不会提示您输入口令。 例如,对于在端口 8080 和 8888(两个端口均使用 RSA 加密专用密钥)上进行侦听的安全 Webserver,keypass 文件可能如下所示。


      # !/bin/ksh
      host=`echo $1 | cut -d: -f1`
      port=`echo $1 | cut -d: -f2`
      algorithm=$2
      
      if [ "$host" = "button-1.eng.sun.com" -a "$algorithm" = "RSA" ]; then
         case "$port" in
         8080) echo passphrase-for-8080;;
         8888) echo passphrase-for-8888;;
         esac
      fi

      注意:

      keypass 文件不可以被属主以外的任何人读、写或执行。


  8. httpd.conf 文件中,将 SSLLogLevel 设置为每次 Sun Cluster HA for Apache 探测 Webserver 时均会发出警告以避免记录信息。


    SSLLogLevel warn
  9. 更新 Apache 启动/停止脚本文件 (Bin_dir/apachect1) 中的路径。

    您必须更改路径的 Apache 缺省值,使其与 Apache 目录结构相匹配。

  10. 执行以下任务以检验您的配置更改。

    1. 运行 apachectl configtest 以检查 Apache httpd.conf 文件的语法是否正确。

    2. 确保 Apache 使用的所有逻辑主机名或共享地址已配置并处于联机状态。

    3. 发出 apachectl start 以手动启动 Apache 服务器。

      确保 Webserver 不会要求您输入口令。

      如果 Apache 没有正常启动,请解决问题。

    4. 启动 Apache 之后,先停止 Apache 再转到下一过程。