我在 CentOS 上设置了 apache 服务器。我正在尝试添加 SSL。我能够创建证书和密钥,然后更新/etc/httpd/conf.d/ssl.conf
为具有以下配置:
/etc/httpd/conf.d/ssl.conf
#Where I put my cert
SSLCertificateFile /etc/pki/tls/certs/ca.crt
#where I put my key
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
然后我更新了/etc/httpd/conf/httpd.conf
:
/etc/httpd/conf/httpd.conf
Listen 443
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
然后我跑了service httpd restart
,我得到了错误:
Stopping httpd: [OK]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:443
[OK]
我需要做什么才能启用 SSL?
默认情况下,在 CentOS 中,Apache/httpd 使用的文件位于
/etc/httpd/conf.d/ssl.conf
. 该文件作为 Apache 的配置与“httpd.conf”文件一起读入,其中的任何内容都优先于httpd.conf
.该文件(同样默认情况下)包含一个
Listen 443
指令。您不能两次调用该指令(因为它会说它已经绑定到该端口),因此导致了冲突。删除后,它可以工作。如果有人在 2017 年偶然发现这个问题......
无需编辑
httpd.conf
,因为ssl.conf
包含我们需要的所有指令:...
当然还有证书的路径:
换句话说,添加信息
ssl.conf
并重新启动httpd
服务就足够了。当然,这仅在此(最后)行时才有效:...按照上面的文件取消注释
httpd.conf
,它是默认安装。系统信息:
基于 Debian 系统或通常基于其他系统
创造
/etc/apache2/conf-available/default-ssl.conf
如果您想使用默认页面,即使用 NGINX 或其他的反向代理,这可以开箱即用。
它不仅限于 VHOST。
附加信息
事实上,它不会产生错误,它仅在启用 Mod-SSL 时有效。
提醒重启 Apache
这对我很有效。