У меня IIS8.5 работает на Win Server 2K12 R2. У меня есть действующий сертификат SSL, зарегистрированный на имя сервера foo.domain.com
:
Я настроил привязки своего веб-сайта для использования https с этим сертификатом:
Я могу успешно общаться с веб-сайтом, когда разговариваю с https://foo.domain.com
, но я не могу успешно говорить при использовании https://localhost.com
или https://127.0.0.1
:
Что мне нужно сделать, чтобы иметь возможность успешно общаться через localhost?
Я пытался:
foo.domain.com
Я не:
mmc.exe certmgr.msc
. Поскольку моя текущая установка работает внешне, я не думаю, что это проблема.foo.domain.com
Ваш сертификат 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
. С этого момента он начал работать.
Конечно, все это предполагает, что вы уже установили сертификат в доверенные корневые центры сертификации клиентской машины.
Надеюсь, это поможет!