Назад | Перейти на главную страницу

Как добавить SSL / 443 на сервер Apache без виртуального хоста?

У меня есть сервер Apache, настроенный на CentOS. Я пытаюсь добавить 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 содержит все необходимые нам директивы:

# When we also provide SSL we have to listen to the 
# the HTTPS port in addition.
#
Listen 443 https

...

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

И, конечно, пути к сертификатам:

SSLCertificateFile /etc/pki/tls/certs/<mycert>.crt

SSLCertificateKeyFile /etc/pki/tls/private/<mykey>.key

Другими словами, достаточно добавить информацию в ssl.conf и перезапустите httpd служба. Конечно, это работает, только если эта (последняя) строка:

# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf

... раскомментирован, как указано выше в файле httpd.conf, который находится в установке по умолчанию.

Системная информация:

cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.3 (Maipo)