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

Проблемы с настройкой SSL-сертификата на Apache VirtualHosts

Я пытаюсь запустить несколько 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.