SSL 内核代理可加速 Apache 2.2 Web 服务器上的 SSL 包处理。此过程可实现Figure 3–1 中所示的简单方案。
开始之前
已配置 Apache 2.2 Web 服务器。Oracle Solaris 中包含该 Web 服务器。
您必须承担 root 角色。
# svcadm disable svc:/network/http:apache22
如果只在 ssl.conf 文件中指定了 SSLCertificateFile 参数,则指定的文件可直接用于 SSL 内核代理。
如果还指定了 SSLCertificateKeyFile 参数,则必须合并证书文件和私钥文件。运行与下面类似的命令以合并文件:
# cat cert.pem key.pem > cert-and-key.pem
有关完整的选项列表,请参见 ksslcfg(1M) 手册页。必须提供的参数遵循:
key-format-与 –f 选项一起定义证书和密钥格式。对于 SSL 内核代理,支持的格式为 pkcs11、pem 和 pkcs12。
key-and-certificate-file-与 –i 选项一起设置存储 pem 和 pkcs12 key-format 选项的服务器密钥和证书的文件位置。
password-file-与 –p 选项一起获取用于加密 pem 或 pkcs12key-format 选项的密钥的口令。对于 pkcs11,该口令用于验证 PKCS #11 令牌。必须使用 0400 权限保护口令文件。无人参与的重新引导需要该文件。
proxy-port-与 –x 选项一起设置 SSL 代理端口。必须指定标准端口 80 之外的其他端口。Web 服务器在 SSL 代理端口上侦听未加密纯文本流量。通常,此值为 8443。
ssl-port-为 SSL 内核代理指定侦听端口。通常,此值为 443。
使用以下格式之一指定 SSL 代理端口及关联的参数:
# ksslcfg create -f key-format -i key-and-certificate-file \ -p password-file -x proxy-port ssl-port
# ksslcfg create -f pkcs11 -T PKCS11-token -C certificate-label \ -p password-file -x proxy-port ssl-port
# svcs svc:/network/ssl/proxy STATE STIME FMRI online 02:22:22 svc:/network/ssl/proxy:default
以下输出表明未创建服务实例:
svcs: Pattern 'svc:/network/ssl/proxy' doesn't match any instances STATE STIME FMRI
编辑 /etc/apache2/2.2/http.conf 文件并添加一行,以定义 SSL 代理端口。如果使用服务器的 IP 地址,Web 服务器将只在该接口上侦听。该行类似于以下内容:
Listen proxy-port
Web 服务器服务仅在启动 SSL 内核代理实例之后才能启动。以下命令将建立该相关性:
# svccfg -s svc:/network/http:apache22 svc:/network/http:apache22> addpg kssl dependency ...apache22> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 ...apache22> setprop kssl/grouping = astring: require_all ...apache22> setprop kssl/restart_on = astring: refresh ...apache22> setprop kssl/type = astring: service ...apache22> end
# svcadm enable svc:/network/http:apache22