Поймать ошибку запроса сертификата SSL, чтобы перенаправить на правильный сайт - PullRequest
5 голосов
/ 08 ноября 2008

Мы используем IIS 6 и ASP.Net, когда пользователи делают безопасные запросы страниц, используя

https://somesite.com/securePage.aspx

пользователь получает ошибку:


Код ошибки: ssl error bad cert domain


Сертификат выдан www.somesite.com и указывает, что somesite.com использует недействительный сертификат безопасности.

Я надеялся, что смогу перехватить запрос в событии Application BeginRequest, но перед этим возникла ошибка SSL. Чтобы вызвать событие Application BeginRequest, пользователь должен щелкнуть сообщение об ошибке сертификата. Возможно ли перенаправление в коде или это исправление необходимо выполнить в IIS?

Ответы [ 6 ]

6 голосов
/ 09 ноября 2008

Единственное решение состоит в том, чтобы включить второй домен в сертификат с SubjectAlternativeName. Некоторые центры сертификации позволят вам сделать это без дополнительных затрат.

Все остальное произойдет только после ssl-соединения и поэтому после ошибка обнаружена пользователем.

При использовании HTTPS ssl-соединение согласовывается перед отправкой на сервер любого из заголовков HTTP, включая заголовок Host:, который указывает серверу, для какого виртуального хоста фактически предназначен запрос.

1 голос
/ 15 августа 2014

Мне удалось решить эту проблему с помощью функции перезаписи IIS. Оказалось, что это очень легко исправить, и нам не пришлось приобретать новый сертификат.

0 голосов
/ 19 ноября 2013

Я провел некоторое тестирование на одном из моих серверов, и вот что я нашел.

У нас есть сертификат UCC, который будет работать для 5 доменов. Мои 5 доменов

master mydomain.com

вспомогательные имена: mysite.com myweb.com thissite.com www.thissite.com

Причина, по которой он настроен так, в том, что я не совсем понял, что он хочет www. когда я сделал это.

Итак,

https://mydomain.com - works
https://www.mydomain.com - works
https://www.mysite.com - ERROR
https://mysite.com - works
https://thissite.com - works
https://www.thissite.com - works.

Если у вас есть сертификат UCC (кажется, у вас есть), добавьте альтернативное имя субъекта с www в рассматриваемом домене. Затем он будет работать для обоих.

Я прошел все шаги, пытаясь перенаправить с помощью .htaccess и сценариев на стороне сервера. Но, хоп прав, он ничего не сделает, если вы не исправите сертификат.

Скорее всего, вам придется отказаться от домена, когда вы перепроверяете свой сертификат. Просто запомни, какой ты бросил, и получи новый сертификат для этого. Я буду всегда и всегда отказываться покупать сертификаты UCC отныне. Больше проблем, чем они стоят. 1 домен = 1 сертификат.

Если ваш домен зарабатывает деньги, то он того стоит, если вы не зарабатываете деньги - вам действительно нужен сертификат?

0 голосов
/ 11 ноября 2008

HOP правильно с его ответом. Оуэн также, если бы у нас была возможность использовать IIS 7 в качестве правил перезаписи, аналогичных правилу mod_rewrite в Apache, теперь возможно из IIS.

После дальнейшего расследования сегодня вместе с нашими сетевыми администраторами и провайдером SSL-сертификатов применение SAN к нашему сертификату вполне возможно и бесплатно.

Однако из-за политических проблем в ORG было решено, что DEV (моя группа ) создать перенаправление на зарегистрированный домен в рамках события Application BeginRequest. Для каждого запроса мы будем проверять, что URL указывает на наше полное доменное имя. Если запрос сделан к «Сокращенному имени», мы всегда будем указывать его на полное доменное имя, добавляя www к короткому имени, которое будет возвращено методом context.Host.

Без сомнения, это увеличит болтливость и т. Д.!

0 голосов
/ 09 ноября 2008

Интересная. Я никогда не наблюдал такого поведения ни на одном сайте, пока не увидел этот вопрос. Даже у Google есть эта проблема. Приведенный ниже URL дает ошибку плохого сертификата

https://google.com/accounts/

Кстати, у большинства сайтов есть поддомен, на который они защищают его сертификатом. Один голос за вопрос.

0 голосов
/ 09 ноября 2008

В Apache это обычно делается с помощью mod_rewrite:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Google для "переписать URL IIS", вы найдете некоторые эквиваленты для IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...