我正在尝试在 Linux Apache 2.2.3 服务器上安装 SSL 证书。我在网上浏览如何安装证书,大多数人都说要编辑“httpd.conf”文件。但是,有两个这样的文件,我不确定要编辑哪个。以下是文件路径:
/etc/dirsrv/管理员服务/httpd.conf
/etc/httpd/conf/httpd.conf
我尝试编辑它们并向虚拟主机添加额外信息:
SSLCertificateFile mycert
SSLCertificateKeyFile mykey
但是,当我尝试重新启动 Apache 时,它说 SSLCertificateFile 是一个无效命令。
注意:我还有一个 nss.conf 文件,其中包含有关虚拟主机的一些信息。
答案1
如果“SSLCertificateFile”是无效指令,则说明您没有加载 mod_ssl。您需要在配置中的某处添加一行,如下所示:
LoadModule ssl_module libexec/apache22/mod_ssl.so
(该行特定于 FreeBSD 框,因此如果不进行微小修改,它不太可能正常工作)
通常,你应该将 SSL 信息放在 vhost 的指令中;但是很简单网站可能会像这样:
ServerName example.com
Listen 80
Listen 443
LoadModule ssl_module libexec/apache22/mod_ssl.so
LoadModule the other modules go in here...
User www
Group www
DocumentRoot /path/to/site
SSLCertificateFile /path/to/cert
SSLCertificateKeyFile /path/to/key
SSLCertificateChainFile /path/to/chain
<VirtualHost *:443>
SSLEngine on
</VirtualHost>
这是我的个人网站的配置(加上一些安全性、日志记录和其他类似的垃圾)。
答案2
我认为您最好将 SSL 信息放入将使用它的 vhost 中,这只是为了组织的方便。另外请记住,必须在 apache 上启用 mod_ssl 才能使SSLEngine
和SSLCertificateFile
正常SSLCertificateKeyFile
工作。
# a2enmod ssl
通常会在基于 Debian 的发行版中自动启用该模块。