Я пытаюсь установить сертификат SSL на сервер Linux Apache 2.2.3. Я просматривал онлайн, чтобы увидеть, как установить сертификат, и, как правило, редактирую файл httpd.conf. Однако есть два таких файла, и я не уверен, что редактировать. Вот пути к файлам:
/etc/dirsrv/admin-serv/httpd.conf
/etc/httpd/conf/httpd.conf
Я попытался отредактировать их, добавив дополнительную информацию к виртуальному хосту:
SSLCertificateFile mycert
SSLCertificateKeyFile mykey
Однако, когда я попытался перезапустить Apache, он сказал, что SSLCertificateFile - недопустимая команда.
Примечание: у меня также есть файл nss.conf, который содержит некоторую информацию о виртуальных хостах.
Если он лает, что "SSLCertificateFile" - недопустимая директива, значит, у вас не загружен mod_ssl. Вам нужна строка где-нибудь в вашей конфигурации, которая выглядит примерно так:
LoadModule ssl_module libexec/apache22/mod_ssl.so
(Эта конкретная строка взята из коробки FreeBSD, поэтому она вряд ли будет работать без незначительных изменений)
Обычно вы должны помещать информацию SSL в директиву vhost; но очень просто site может выглядеть примерно так:
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>
Вот как выглядит конфигурация моего личного сайта (плюс некоторая безопасность, ведение журнала и другой подобный мусор).
Я думаю, вам лучше поместить информацию SSL внутри виртуального хоста, который будет ее использовать, просто для организации. Также помните, что mod_ssl должен быть включен в apache для SSLEngine
, SSLCertificateFile
и SSLCertificateKeyFile
работать.
# a2enmod ssl
Обычно автоматически включает модуль в дистрибутивах на основе Debian.