2014-02-19 5 views
2

Apache 2.2. У меня есть SSL-сертификат подстановки для *.mydomain.com. Я хочу разрешить безопасные соединения также непосредственно на mydomain.com. Я нашел решение, что я могу сделать адрес для моего сайта www.mydomain.com, и действительно - сертификат работает, когда я ввожу www.mydomain.com. Рабочая конфигурация:HTTPS переадресация с символом символа

<VirtualHost *:443> 
    ServerName www.mydomain.com 

    SSLEngine On 
    SSLCertificateFile /etc/apache2/ssl/cert.der 
    SSLCertificateKeyFile /etc/apache2/key.pem 

    // site config, redirects to Apache Tomcat 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName mydomain.com 
    Redirect permanent/https://www.mydomain.com 

    SSLEngine On 
    SSLCertificateFile /etc/apache2/ssl/cert.der 
    SSLCertificateKeyFile /etc/apache2/key.pem 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName mydomain.com 
    ServerAlias www.mydomain.com 
    Redirect permanent/https://www.mydomain.com 
</VirtualHost> 

Когда я вхожу в http://mydomain.com и http://www.mydomain.com я перенаправлены на https://www.mydomain.com, как и ожидалось.

Однако, когда я ввожу https://mydomain.com, браузер говорит, что сертификат недействителен (замок блокирован). Я должен подтвердить, что я знаю и доверяю сертификату (в chrome он называется «добавить исключение безопасности»), а после него - я правильно перенаправлен на https://www.mydomain.com - и висячий замок зеленый.

Вопрос: как перенаправить https://mydomain.com на https://www.mydomain.com, не беспокоящий пользователя о недействительном сертификате?

Я пытался удалить SSL* записи из второго VirtualHost определения, но апач не запускается и появляется следующее сообщение в журналах:

[error] Server should be SSL-aware but has no certificate configured 
[Hint: SSLCertificateFile] (/etc/apache2/sites-enabled/mydomain:1) 
+0

Имеет ли ваш сертификат записи SAN для '* .mydomain.com' и' mydomain.com'? (Кстати, использование * постоянного * переадресации при тестировании различных параметров конфигурации не обязательно является хорошей идеей, так как браузер, с которым вы проверяете это, скорее всего, запомнит это.) – Bruno

ответ

2

Протокол SSL соединения с проверкой сертификатов будет сделано до того, как Обмен сообщениями HTTP. Таким образом, перенаправление HTTP с mydomain.com на www.mydomain.com может быть выполнено только после успешной проверки сертификата. Поэтому никакая игра с сервером не поможет, и ваш единственный выбор - получить сертификат, который включает mydomain.com.

Смежные вопросы