Apache 是 Apache 软件基金会推出的免费产品,作为 HTTP 服务器在全球广受欢迎。它最初为 UNIX 设计,如今也被 Windows 及其他操作系统广泛使用。「Apache」一名源自「patchy」(补丁式),是早期版本开发者对其软件的称呼。包含额外 SSL 模块的 Apache 服务器被称为 Apache 与 mod_ssl。
在 Apache 与 mod_ssl 中安装 SSL 的步骤
1. 下载中间证书。
向受信任的证书服务商(立海世纪)购买 SSL 证书;将中间证书内容复制到记事本或文本文件中,命名为「intermediate.crt」,保存到 SSL 证书所在目录,例如 /usr/local/ssl/crt。
2. 安装 SSL 证书。
你将通过电子邮件收到证书,可能是附件,也可能是邮件正文的纯文本。若为附件则下载后直接使用;若为文本形式则复制粘贴到记事本或其他文本文件中,但不要使用 Microsoft Word,因为它可能向文件添加多余字符。移除文件中所有空格与多余空行。文本文件示例如下:
-----BEGIN CERTIFICATE-----
[encoded data]
-----END CERTIFICATE-----
「Begin Certificate」与「End Certificate」前后的五道横线是必需的,中间不得有空白、换行或多余证书。
按 Apache 命名规范将证书重命名为 .crt 扩展名,并将证书移动到存放证书的目录,例如 /usr/local/ssl/crt。
3. 服务器配置。
要使用密钥对(公钥与私钥),需更新 httpd.conf 文件。在 httpd.conf 的 Virtual Host 区段必须包含以下三条指令:
SSLCertificateFile /usr/local/ssl/crt/public.crt
SSLCertificateKeyFile /usr/local/ssl/private/private.key
SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt
若缺少其中任意指令,请补充添加。注意:部分 Apache 版本不支持 SSLCertificateChainFile 指令,可改用 SSLCACertificateFile。其中,SSLCertificateFile 指示 Apache 服务器证书文件的位置;SSLCertificateKeyFile 指示私钥位置;SSLCertificateChainFile 指示中间证书位置。实际部署时请根据服务器情况修改路径与文件名。
需注意,许多 Apache 版本同时包含 httpd.conf 与 ssl.conf 文件,此时不要向两个文件都写入指令,否则会导致 Apache 无法启动。只需在其中之一写入或修改上述指令即可。
保存 httpd.conf 或 ssl.conf 后重启 Apache,可使用 apachectl 脚本:
apachectl stop
apachectl startssl
至此即可在 Apache-SSL 服务器上使用 SSL 证书。若要验证证书是否正确安装,可使用立海世纪提供的 SSL 安装检测工具。