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

Могу ли я отправить перенаправление на отдельный домен по HTTPS?

У меня есть 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. Исключением являются многодоменные сертификаты, подписанные для нескольких поддоменов.