IIS Express-получение SSL для работы



Я не могу заставить IIS Express принимать безопасные соединения для проекта VS2010 MVC3, который я разрабатываю. Я могу заставить его принимать незащищенные соединения на порту 80, но не безопасно на порту 443.



Я сделал следующие шаги, основанные на googling:



1) нашел отпечаток SHA1 для моего самозаверяющего сертификата сервера IIS Express, выполнив следующее в командной строке VS2010:



certmgr.exe /c /s /r localMachine MY


результат был 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009. Позже я узнал, что мне нужно удалить пробелы при использовании отпечатка большого пальца.



2) удалил любой сертификат, связанный с портом 443, выполнив следующее в командной строке с повышенными привилегиями:



netsh http delete sslcert ipport=0.0.0.0:443


3) сгенерировал новый GUID, запустив Create GUID из меню VS2010 Tools. В моем случае я получил
B0421A5B-FF61-47CE-892D-11AA3A9C7D2A.



4) установил самозаверяющий сертификат на порт 443, выполнив следующие действия на повышенном уровне командная строка:



netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A}


5) модифицировал ACL, запустив следующее из командной строки с повышенными привилегиями:



netsh http add urlacl url=https://localhost:443/ user=everyone


6) изменено приложение.файл конфигурации для IIS Express путем добавления привязки для порта 443 и протокола https. Раздел сайтов для файла в конечном итоге выглядит так:



        <sites>
<site name="Development Web Site" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_BIN%AppServerempty_wwwroot" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:443:localhost" />
<binding protocol="http" bindingInformation="*:80:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="IISExpressAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>


7) перезапустить службу http, выполнив следующие действия в командной строке с повышенными привилегиями:



net stop http
net start http


8) изменил проект URL-адрес на веб-вкладке страницы свойств моего проекта MVC:



http://localhost/


сохранение страницы свойств проекта вызвало реконфигурацию сервера после того, как я сделал это изменение.



когда я запускаю приложение MVC из VS2010, он правильно привязывается к http://localhost (на порту 80, по умолчанию; я не включил все шаги для получения IIS Express для работы с незащищенными / обычными соединениями на порту 80, но они по существу являются шагами с 5 по 7, но ориентируясь на http и порт 80, а не https и порт 443).



однако, пытаясь перейти к любому действию, которое требует https, я получаю ошибку "отказано в подключении к серверу".



что я делаю не так?

710   3  

3 ответов:

после того, как вы создали проект, чтобы использовать IISExpress, нажмите клавишу F4 пока проект выбран в обозревателе решений для вызова свойств и в наборе свойств SSL Enable set true и под SSL URL установите URL-адрес с портом (443 в вашем случае), который вы хотите для SSL.

это работает для меня, не заходя под капот, и самоподписанный сертификат был автоматическим.

чтобы запустить проект по этому URL-адресу по умолчанию, вы можете щелкнуть правой кнопкой мыши по проекту, выберите Свойства, Затем Web и замените Url-адрес проекта на https://localhost:443

я наткнулся на ответ.

на шаге 6 я изменял неправильное приложение IIS Express.конфигурационный файл. Оказывается, в домашнем каталоге приложения есть конфигурационный файл "master" (например, C:\Program Files (x86)\IIS Express\AppServer, в моей системе), который я изменил.

вторая и правильный файл для изменения в области пользовательских данных (например, C:\Users\Mark.ARCABAMA\Documents\IISExpress\config на моей системе).

Если вы выполнили шаги jbtule и SSL все еще не работает, убедитесь, что ваш порт находится в формате :443XX.

Visual Studio сделала это автоматически для первого проекта, в котором я включил SSL, но все последующие проекты, похоже, имеют случайные порты SSL. Изменение его на вышеуказанную структуру 443 под Project > Web UI получил его и работает на меня.

Comments

    Ничего не найдено.