В экземпляре EC2, который обслуживает несколько доменов с помощью виртуальных хостов, я настроил балансировщик нагрузки, который перенаправляет трафик HTTPS из порта: 443 в: 8443 для одного из доменов, частично после этого пример: http://elwoodicious.com/2009/12/23/using-elb-to-serve-multiple-domains-over-ssl-on-ec2-for-giggles/Включение SSL в экземпляре AWS EC2
Мои рабочие httpd.conf виртуальные хосты выглядеть следующим образом:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/domain.om
ServerName domain.com
ServerAlias *.domain.com
ErrorLog logs/domain.com-error_log
CustomLog logs/domain.com-access_log common
</VirtualHost>
# more VirtualHosts on *:80 here
Теперь, как только я добавить новый виртуальный хост для той же domain.com, как это так,
<VirtualHost _default_:8443>
ServerAdmin [email protected]
DocumentRoot /var/www/domain.om
ServerName domain.com
ServerAlias *.domain.com
SSLEngine On
RequestHeader set X_FORWARDED_PROTO 'https'
ErrorLog logs/domain.com-https-error_log
CustomLog logs/domain.com-https-access_log common
</VirtualHost>
... Apache не перезагружается. Уведомления об ошибках отсутствуют - он просто говорит [FAILED]
.
Единственный ключ, который у меня есть: даже когда я удаляю все *: 80 виртуальных хостов и оставляю только один порт для порта *: 8443, Apache не удается ... даже при настройке NameVirtualHost *:8443
.
Может ли это означать, что это директива EC2, которая разрешает только виртуальные хосты на порту 80?
Спасибо за помощь!
---------------- Edit: добавить журнал ошибок
var/log/httpd/error_log
содержит следующее:
[Tue Jun 09 16:52:37 2015] [notice] caught SIGTERM, shutting down
[Tue Jun 09 16:52:37 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Jun 09 16:53:13 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Jun 09 16:53:47 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Jun 09 16:53:47 2015] [notice] Digest: generating secret for digest authentication ...
[Tue Jun 09 16:53:47 2015] [notice] Digest: done
[Tue Jun 09 16:53:47 2015] [notice] Apache/2.2.29 (Unix) DAV/2 PHP/5.3.29 mod_ssl/2.2.29 OpenSSL/1.0.1k-fips configured -- resuming normal operations
var/log/httpd/ssl_error_log
содержит следующее:
[Tue Jun 09 16:53:47 2015] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Tue Jun 09 16:53:47 2015] [warn] RSA server certificate CommonName (CN) `ip-xx-xx-xx-xx' does NOT match server name!?
И, наконец, var/log/httpd/domain.com-https-error_log
выглядит следующим образом:
[Tue Jun 09 16:53:13 2015] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:1026)
В строке 1026 httpd.conf находится <VirtualHost _default_:8043>
. Я загрузил самоподписанный сертификат OpenSSL, который я создал на своем локальном компьютере, используя aws cli
, и я привязал его к Load Balancer для трафика HTTPS.
Запись CNAME для домена указывает на имя DNS ELB. Не уверен, что я пропустил.
говорит о [FAILED] в командной строке, но в журнале ошибок должна быть информация. – tedder42
@ tedder42 спасибо за подсказку. Я обновил вопрос, чтобы добавить журналы. Это похоже на проблему с самозаверяющим сертификатом, который я создал с OpenSSL на моем локальном компьютере ... Может ли это быть причиной для запуска Apache? Это «только» [предупреждение], поэтому я не рассматривал его для этой проблемы, но планировал изучить его позже. – bobsoap
@ tedder42 Я снова обновил вопрос с записью, которую я забыл проверить раньше. – bobsoap