Как настроить IIS Express для просьбы клиентский сертификат

При включении PowerShell и удаленного управления от утилиты командной строки Сервера Hyper-V можно затем использовать PowerGUI с Hyper-V PowerPack для управления VMs/VHDs:

  1. Загрузите PowerGUI
  2. Импортируйте Hyper-V PowerPack
  3. Посмотрите демонстрационное Hyper-V PowerPack видео

8
задан 26 November 2012 в 19:09
3 ответа

Используйте инструмент IIS Manager и следуйте документации Microsoft Проверка подлинности сопоставления сертификатов клиента IIS .

Пример конфигурации:

<location path="Default Web Site">
   <system.webServer>
      <security>
         <authentication>
            <windowsAuthentication enabled="false" />
            <anonymousAuthentication enabled="false" />
            <digestAuthentication enabled="false" />
            <basicAuthentication enabled="false" />
            <iisClientCertificateMappingAuthentication enabled="true"
                  manyToOneCertificateMappingsEnabled="true">
               <manyToOneMappings>
                  <add name="Contoso Employees"
                        enabled="true"
                        permissionMode="Allow"
                        userName="Username"
                        password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]">
                     <rules>
                        <add certificateField="Subject"
                           certificateSubField="O"
                           matchCriteria="Contoso"
                           compareCaseSensitive="true" />
                     </rules>
                  </add>
               </manyToOneMappings>
            </iisClientCertificateMappingAuthentication>
         </authentication>
         <access sslFlags="Ssl, SslNegotiateCert" />
      </security>
   </system.webServer>
</location>
5
ответ дан 2 December 2019 в 23:05

Это были инструкции, которые Джейсон Шейверс раздал в своем блоге. (Но эта страница больше не существует.) Скотт Хансельман также говорит о включении SSL на http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx . Но он ни в коем случае не говорит о том, что сайт требует сертификатов клиентов.

Я выполнил следующие инструкции:

Измените applicationhost.config (их два в MyDocuments \ IISExpress \ config, а другие в программе files \ IIS Express \ AppServer по умолчанию тот, который находится в вашем профиле, используется при запуске проекта на IISExpress в VS 2012. Другой можно запустить с помощью командной строки, что я и сделал на локальной тестовой машине.)

  1. Изменить элемент

в

И элемент

до

Следующие два шага должны быть выполнены в Visual Studio. По умолчанию, когда новый проект создается в VS 2012, он создается как проект IIS Express. В более старом проекте, перенесенном в VS2012, возможно, придется фактически изменить этот параметр.

  1. На странице свойств проекта на вкладке «Интернет» измените «Использовать сервер разработчика Visual Studio» на «Использовать локальный веб-сервер IIS». (Должен быть выделен серый флажок с надписью Использовать IIS Express, если на вашем компьютере не установлена ​​обычная установка IIS (что невозможно сделать на этих машинах NMCI). В URL-адресе проекта должно быть указано что-то вроде http: // Localhost: 62714 / (это должен быть тот же порт, который установлен как «определенный порт» в настройке Visual Studio Development Server (если он установлен )

  2. Затем выберите проект в обозревателе решений и перейдите на вкладку свойств. (Иногда это нужно сделать пару раз, прежде чем свойства появятся.) У него будет три свойства: SSL Enable, значение по умолчанию - false, URL-адрес SSL, который пуст с новым проектом и URL-адресом, для которого задан URL-адрес в "URL-адресе проекта" на вкладке свойств.

Измените свойство SSL включен на true, и будет создан новый URL-адрес SSL.

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

В файле applicationhost.config под элементом «» новая запись создается при первом запуске проекта до включения SSL. Это будет выглядеть так:

        <site name="WebApplication1" id="2">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="c:\users\edward.joell\documents\visual studio 2012\Projects\WebApplication1\WebApplication1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:61313:localhost" />
            </bindings>
        </site>

Когда вы включите SSL в своем проекте, это должно выглядеть так:

        <site name="WebApplication1" id="2">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="c:\users\edward.joell\documents\visual studio 2012\Projects\WebApplication1\WebApplication1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:61313:localhost" />
    <binding protocol="https" bindingInformation="*:44313:localhost" />
            </bindings>
        </site>

(все порты 443xx зарезервированы для проектов SSL).

1
ответ дан 2 December 2019 в 23:05

Я нашел блог , в котором подробно описано, как настроить запросы сертификатов клиента для IIS Express (я использовал Visual Studio 2017, IISExpress 10.0 ). По-видимому, расположение файлов applicationhost.config изменилось в Visual Studio 2015 и более поздних версиях.

Вот краткое описание того, что он говорит:

  1. Установите сертификат (обратите внимание, что закрытый ключ только необходимо со стороны клиента) на машине разработки (это должно быть видно в списках сертификатов браузера в их настройках)
  2. Используя Visual Studio, создайте новое веб-приложение
  3. Включите SSL для вашего проекта : Просмотр свойств проекта (F4) -> SSL включен до Истина (обратите внимание, что свойство URL-адрес SSL заполняется)
  4. Настройте запуск проекта в режиме SSL : перейдите в Свойства проекта (Alt + Enter), выберите вкладку Web и измените URL-адрес проекта на адрес из шага 3. Например, https: // localhost: 44300
  5. Найдите файл конфигурации IIS Express applicationhost.config : в 2015 или 2017 годах файл находится в [каталог решения] \. Vs \ config \ - в более ранних версиях он находится в % UserProfile% \ Documents \ IISExpress \ config \
  6. . Измените файл applicationhost.config : установите и
  7. Теперь сертификат доступен из кода в запросе .ClientCertificate , и его следует запрашивать при открытии страницы в браузере.
0
ответ дан 2 December 2019 в 23:05

Теги

Похожие вопросы