Как настроить IIS Express для запроса сертификата клиента
8
Кто-нибудь знает, как настроить IIS Express для запроса сертификата клиента для доступа? Я пытаюсь отладить проблемное приложение ASP.NET, которое использует клиентские сертификаты для аутентификации.
Близко? Большинство настроек IIS Express настраиваются в Visual Studio, и отладка программы определенно связана с программированием ...
Marko
Тогда вопрос типа "как установить Visual Studio?" будет обычным? :)
onof
2
Я не хочу спорить здесь, но FYI IIS Express в основном используется для отладки приложений ASP.NET, поскольку он предлагает функциональность, которая не поддерживается сервером разработки ASP.NET. Мой вопрос связан с отладкой. Но для отладки мне нужно сначала настроить его. Я думаю, что более вероятно, что это уже сделал какой-то разработчик, а не системный администратор, поскольку они все равно использовали бы настоящий IIS.
Марко
Я не знаю, как программно требовать сертификат клиента для доступа. Тем не менее, вот ресурс, от которого я нашел помощь. Надеюсь, это поможет
Изменить applicationhost.config (Два из них один в MyDocuments \ IISExpress \ config, а другой в программных файлах \ IIS Express \ AppServer по умолчанию, тот, который находится под вашим профилем, используется при запуске проекта в IISExpress в VS 2012. Другой может запускаться с использованием командной строки, что я и сделал на локальном тестовом компьютере.)
Следующие два шага должны быть выполнены в Visual Studio. По умолчанию, когда в VS 2012 создается новый проект, он создается как проект IIS Express. Более старый проект, перенесенный в VS2012, может фактически изменить это значение.
На странице свойств проекта на вкладке Интернет измените параметр Использовать Visual Studio Developer Server на Использование локального веб-сервера IIS. (Должен быть отмечен серым флажок «Использовать IIS Express», если у вас нет обычной установки IIS на вашем компьютере (что невозможно сделать на этих машинах NMCI). Должен быть URL-адрес проекта, говорящий что-то вроде http: // Localhost: 62714 / (это должен быть тот же порт, который установлен как «определенный порт» в настройках сервера разработки Visual Studio (если он установлен)
Затем выберите Project в обозревателе решений и перейдите на вкладку свойств. (Иногда это нужно сделать пару раз, прежде чем появятся свойства.) У него будет три свойства: SSL Enable (по умолчанию false), SSL URL - пусто с новым проектом и URL настроено на URL в " URL проекта "на вкладке свойств.
Измените свойство SSL enabled на true, и будет создан новый URL-адрес SSL.
Скопируйте этот URL-адрес SSL и вернитесь на страницу свойств проекта и вставьте его в качестве нового URL-адреса проекта. В этот момент я нажал «Создать виртуальный каталог», хотя в некоторых блогах говорится, что нет необходимости в том, что вам нужно только сохранить проект и запустить его в режиме отладки.
В файле applicationhost.config под элементом «» новая запись создается при первом запуске проекта перед включением SSL. Это будет выглядеть так:
Я нашел блог, в котором подробно рассказывалось о том, как настроить запросы сертификатов клиентов для IIS Express (я использовал Visual Studio 2017, IISExpress 10.0). Видимо расположение applicationhost.configфайлов изменилось в Visual Studio 2015 и выше.
Вот схема того, что он говорит:
Установите сертификат (обратите внимание, что закрытый ключ необходим только со стороны клиента) на компьютере разработчика (он должен быть виден в списках сертификатов браузера в их настройках)
Используя Visual Studio, создайте новое веб-приложение
Включить SSL для вашего проекта : просмотреть свойства проекта (F4) -> SSL Enabledчтобы True(обратите внимание, что SSL URLсвойство заполняется)
Настройте проект на запуск в режиме SSL : перейдите в «Свойства проекта» (Alt + Enter), выберите вкладку « Интернет » и измените URL-адрес проекта, указанный на шаге 3. Например,https://localhost:44300
Найдите файл конфигурации IIS Expressapplicationhost.config : в 2015 или 2017 году файл находится в [solution directory]\.vs\config\- в более ранних версиях он находился в%UserProfile%\Documents\IISExpress\config\
Ответы:
Используйте средство диспетчера IIS и следуйте документации Microsoft. Проверка подлинности сопоставления сертификатов клиента IIS <iisClientCertificateMappingAuthentication> .
Пример конфигурации:
источник
Это были инструкции, переданные Джейсоном Шейверсом в его блоге. (Но эта страница больше не существует.) Скотт Хансельман также говорит о включении SSL на http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx . Но он ни в коем случае не ссылается на то, что сайт требует клиентских сертификатов.
Вот инструкции, которым я следовал:
Изменить applicationhost.config (Два из них один в MyDocuments \ IISExpress \ config, а другой в программных файлах \ IIS Express \ AppServer по умолчанию, тот, который находится под вашим профилем, используется при запуске проекта в IISExpress в VS 2012. Другой может запускаться с использованием командной строки, что я и сделал на локальном тестовом компьютере.)
И элемент
в
Следующие два шага должны быть выполнены в Visual Studio. По умолчанию, когда в VS 2012 создается новый проект, он создается как проект IIS Express. Более старый проект, перенесенный в VS2012, может фактически изменить это значение.
На странице свойств проекта на вкладке Интернет измените параметр Использовать Visual Studio Developer Server на Использование локального веб-сервера IIS. (Должен быть отмечен серым флажок «Использовать IIS Express», если у вас нет обычной установки IIS на вашем компьютере (что невозможно сделать на этих машинах NMCI). Должен быть URL-адрес проекта, говорящий что-то вроде http: // Localhost: 62714 / (это должен быть тот же порт, который установлен как «определенный порт» в настройках сервера разработки Visual Studio (если он установлен)
Затем выберите Project в обозревателе решений и перейдите на вкладку свойств. (Иногда это нужно сделать пару раз, прежде чем появятся свойства.) У него будет три свойства: SSL Enable (по умолчанию false), SSL URL - пусто с новым проектом и URL настроено на URL в " URL проекта "на вкладке свойств.
Измените свойство SSL enabled на true, и будет создан новый URL-адрес SSL.
В файле applicationhost.config под элементом «» новая запись создается при первом запуске проекта перед включением SSL. Это будет выглядеть так:
Когда вы включаете SSL в вашем проекте, он должен выглядеть так:
(все порты 443xx зарезервированы для проектов SSL).
источник
Я нашел блог, в котором подробно рассказывалось о том, как настроить запросы сертификатов клиентов для IIS Express (я использовал Visual Studio 2017, IISExpress 10.0). Видимо расположение
applicationhost.config
файлов изменилось в Visual Studio 2015 и выше.Вот схема того, что он говорит:
SSL Enabled
чтобыTrue
(обратите внимание, чтоSSL URL
свойство заполняется)https://localhost:44300
applicationhost.config
: в 2015 или 2017 году файл находится в[solution directory]\.vs\config\
- в более ранних версиях он находился в%UserProfile%\Documents\IISExpress\config\
<access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
и<iisClientCertificateMappingAuthentication enabled="true"></iisClientCertificateMappingAuthentication>
Request.ClientCertificate
свойстве и должен запрашиваться при открытии страницы в браузере.источник