Я пытаюсь запустить несколько SSL-соединений с одного IP-сервера под управлением RHEL6. Я успешно настроил один домен на SSL, однако, когда я пытаюсь добавить второй, Apache не перезапускается. Комментирование первого домена так, чтобы работал только новый, не решает проблему.
Моя конфигурация выглядит следующим образом:
NameVirtualHost *:80
NameVirtualHost 192.168.0.10:443
# Domain 1 Works fine
<VirtualHost 192.168.0.10:443>
ServerName domain1.org.uk
DocumentRoot /home/domain1/public_html
<Directory "/home/domain1/public_html">
allow from all
Options FollowSymLinks
</Directory>
SSLEngine on
SSLCertificateFile /home/domain1/certs/domain1.org.uk.crt
SSLCertificateKeyFile /home/domain1/certs/domain1.org.uk.key
SSLCertificateChainFile /home/domain1/certs/gs_intermediate_ca.crt
</VirtualHost>
# Domain 2 kills apache
<VirtualHost 192.168.0.10:443>
ServerName domain2.org.uk
DocumentRoot /home/domain2/public_html
<Directory "/home/domain2/public_html">
allow from all
Options FollowSymLinks
</Directory>
SSLEngine on
SSLCertificateFile /home/domain2/certs/domain2.org.uk.crt
SSLCertificateKeyFile /home/domain2/certs/domain2.org.uk.key
SSLCertificateChainFile /home/domain2/certs/gs_intermediate_ca.crt
</VirtualHost>
Когда я смотрю на / var / log / httpd / error_log, я получаю это, когда перезапускаю apache при включении SSL для домена 2
[notice] caught SIGTERM, shutting down]
[notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
При просмотре / var / log / httpd / ssl_error_log
[error] Failed to configure CA certificate chain
Если я изменю строку для сертификата цепочки с SSLCertificateChainFile на SSLCACertificateFile, apache перезапустится без инцидентов, но когда я захожу на домен 2 в любом браузере, я получаю ошибку подключения SSL.
Любая помощь приветствуется.
редактировать
Хорошо, две вещи:
1.) Включили вторую сетевую карту, и HTTPS прослушивает 192.168.0.11 и http на 192.168.0.10.
2.) Пробежали:
openssl verify -verbose -purpose sslserver -CAfile gs_intermediate_ca.crt domain2.org.uk.crt
невозможно загрузить сертификат
и теперь я получаю
unable to load certificate
140685974771528:error:0906D066:PEM routines:PEM_read_bio:bad end line:pem_lib.c:802:
Вы абсолютно уверены, что ваш domain2 gs_intermediate_ca.crt правильный? Строка журнала ошибок Apache делает вид, что в этом и заключается ваша проблема.
В SSLCACertificateFile
директива используется, чтобы указать, какой клиент сертификаты, с которыми вы имеете дело. Таким образом, он, вероятно, не проверяет этот файл так сильно, как с SSLCertificateChainFile
. Таким образом, ошибки не останавливают запуск Apache, но приводят к ошибкам SSL. Еще одна причина предполагать, что проблема связана с этим цепным файлом.
Скорее всего, цепной файл либо A) неправильно отформатирован, либо B) недействителен для этого конкретного сертификата. (например: возможно, цепочка для другого домена) Вы можете попробовать использовать openssl s_client -connect domain2.org.uk:443
чтобы перечислить сертификаты, которые выдаются во время обмена SSL.