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

SSL на IIS8.5 - Работа с именованным URL, но localhost приводит к ERR_CERT_COMMON_NAME_INVALID

У меня IIS8.5 работает на Win Server 2K12 R2. У меня есть действующий сертификат SSL, зарегистрированный на имя сервера foo.domain.com:

Я настроил привязки своего веб-сайта для использования https с этим сертификатом:

Я могу успешно общаться с веб-сайтом, когда разговариваю с https://foo.domain.com, но я не могу успешно говорить при использовании https://localhost.com или https://127.0.0.1:

Что мне нужно сделать, чтобы иметь возможность успешно общаться через localhost?

Я пытался:

Я не:

Ваш сертификат SSL действителен только для точного FQDN, по которому адресат получает доступ к веб-сайту. Тема сертификата SSL и полное доменное имя сервера в адресной строке URL-адреса должны совпадать. Например, это действительно только для foo.domain.comне fooне localhostне 127.0.0.1. Это сделано намеренно. Так работают SSL-сертификаты.

Ни один уважающий себя центр сертификации никогда не выдаст SSL-сертификат для «localhost», потому что теоретически существует бесконечное количество «локальных хостов», которые не имеют возможности проверить их подлинность.

Как утверждают другие, сертификаты SSL действительны только для точного используемого FQDN. Когда вы создали самозаверяющий сертификат в IIS, он предоставил вам имя «выдано». Если вы используете это вместо localhost, сертификат должен работать. Например, если имя машины - foo.bar.com, вы можете использовать https://foo.bar.com в URL вместо https://localhost.

В моем случае я обращался к удаленному серверу разработки по IP, поскольку не было DNS-сервера, который мог бы разрешить его по имени. Я продолжал получать сообщение об ошибке, которое вы получили. В моем случае имя машины было чем-то вроде foo.bar.local с IP-адресом примерно 10.1.1.37. Когда я создал свой самозаверяющий сертификат IIS, он отправил его на foo.bar.local. Чтобы это сработало, я добавил запись в файл hosts моей клиентской машины (c: \ windows \ system32 \ drivers \ ets \ hosts), которая указала foo.bar.local на 10.1.1.37 и начал использовать https://foo.bar.local вместо того https://10.1.1.37. С этого момента он начал работать.

Конечно, все это предполагает, что вы уже установили сертификат в доверенные корневые центры сертификации клиентской машины.

Надеюсь, это поможет!