У меня есть 2x SSL на одном сервере для двух разных доменов. Я сделал это, указав номер SSL 2 на другой номер порта, в данном случае 444. Код для apache ниже:
<VirtualHost XX.XX.XX.XX:443>
ServerAlias *.xxxx.com
ServerName xxxx.com
SSLEngine on
SSLCertificateFile /usr/local/ssh/xxx/xxx.crt
SSLCertificateKeyFile /usr/local/ssh/xxxx/xxxx.key
DocumentRoot /var/www/www.xxxxx.com/web/
</VirtualHost>
Listen 444
NameVirtualHost *:444
<VirtualHost xx.xx.xx.xx:444>
ServerAlias *.yyyyyy.com
ServerName yyyyyy.com
SSLEngine on
SSLCertificateFile /usr/bin/yyyyy.com.crt
SSLCertificateKeyFile /usr/bin/yyyy.key
SSLCertificateChainFile /usr/bin/yyyyy.crt
DocumentRoot /var/www/www.yyyyyy.com/web/
</VirtualHost>
В настоящее время все мои ссылки указывают на https://yyyyy.com:444/ поэтому пользователь не видит недействительных сертификатов SSL. Проблема в том, что у меня есть пользователи, которые просто вводят https://yyyyy.com/ и не входите в порт #, и они не должны этого делать.
Если я приеду, https://yyyyy.com/ он просматривает сертификат для xxxx.com, и выскакивает ошибка недопустимого сертификата ssl. Я пробовал несколько модификаций переписать, что если yyyyy.com находится на порту 443 для перенаправления на https://yyyyy.com:444/
Я уверен, что ответ очевиден ... Да хоть убей, я не могу понять!
Это невозможно, если у вас нет двух поддоменов общего домена верхнего уровня и вы не получили групповой сертификат.
Причина, по которой это невозможно, заключается в том, что клиент вводит https://yyyyy.com/
(примечание: 444), их браузер инициирует соединение TLS с процессом, прослушивающим порт 443. Через этот порт информация о сертификате и подтверждении связи (которая включает имя хоста дефолт vhost, привязанный к этой комбинации ip: port), обмениваются.
Только после того, как соединение TLS будет установлено, вы можете обменять перенаправление HTTP-уровня 301. Но к этому моменту заказчик уже видел недействительную информацию сертификата для https://xxxx.com
.
Кроме того, я заметил, что вы используете псевдоним www.xxxx.com
к тому же хосту, что и xxxx.com
, это будет иметь тот же эффект. Ваш сертификат (если это не подстановочный знак) предназначен для xxxx.com
или www.xxxx.com
только.
Возможные решения:
Антуан Бенкемун, Раньше вы не могли использовать несколько SSL с vhosts на основе имен, но использование отдельных портов обошло это ограничение.
Вы все еще не можете, если не используете GnuTLS
Я собираюсь угадать здесь, но я подозреваю, что вы НЕ используете GnuTLS для своей ssl-библиотеки веб-серверов, и поэтому то, что вы просите, это vhosting базы имен и SSL и не будет работать.
С SSL один IP = один сертификат. Если вам нужно несколько сертификатов, получите дополнительный IP. Исключением являются многодоменные сертификаты, подписанные для нескольких поддоменов.