У меня есть приложение, которое отлично работало в IIS 8.5, которое использовало эту настройку в файле web.config для входа с клиентским сертификатом (смарт-карта) для пути. Мне пришлось перенести это приложение на IIS 10.0, и все работает, за исключением того, что приложение не запрашивает сертификат, а просто выдает ошибку в коде, что сертификат отсутствует.
Я дважды и трижды проверил все настройки в IIS, сертификат тот же, настройки SSL те же. Приложение представляет собой простое приложение .netcore, и оно отлично работает, за исключением запроса сертификата. Есть ли что-то, что отличается в IIS 10 от 8.5, что я мог упустить? Часть web.config, которая позволяет браузеру запрашивать сертификат, я полагаю, находится здесь. Разработчик, который это сделал, больше не с нами, и я был бы признателен за любую помощь в этом. Есть ли что-то, что мне нужно проверить в IIS, помимо того, что я уже проверил?
Я просмотрел некоторые другие посты и убедился, что корневой и промежуточный сертификаты находятся в хранилище сертификатов и т. д. Само приложение загружается нормально с сертификатом SSL.
<location path="SmartCard">
<system.webServer>
<security>
<access sslFlags="Ssl,SslNegotiateCert" />
</security>
</system.webServer>
решение1
Всевещи, являющиесяравный, этодолженработают так же!
Но это ключевая часть - возможно, не все вещи равны выше уровня ? web.config
(или ниже - что web.config будет применяться только к папке SmartCard, которая является частью того же пути HTTP URL, на основе этогорасположениеярлык)
Windows\System32\InetSrv\config\ApplicationHost.config
имеет тенденцию накапливатьсявещиСо временем люди вносят изменения в конфигурацию сервера и забывают об этом.
Итак, возможные варианты:
Проверьте наличие сертификата сервера.с закрытым ключомустановлены и что привязки сайта включают HTTPS
- Я знаю, что вы упомянули, что использование сайта через SSL работает - это должно доказать, что
Выгрузить эффективные настройки сайта с рабочего сервера и сравнить с выгруженными настройками для нерабочего сервера.
- за бонусные баллы, что-то вроде Web Deployment Tool может помочь в этом
- ручной метод:
APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >working.txt
(на рабочем сервере)APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >NONworking.txt
(на... как вы уже догадались, нерабочем сервере!)- а потомсравниватьих с помощью текстового редактора или здравого взгляда
- не указывайте /text:*, если вы предпочитаете XML
Добавьте к этому
NETSH SHOW SERVICESTATE
сравнение для быстрого обзора очередей HTTP.SYS
На самом деле это сокращенная версия - вы также можете посмотреть полное содержимое, applicationhost.config
не отфильтрованное по сайту (и организованное сначала разумно, а затем линейно с последующими изменениями) в Windows\System32\InetSrv\Config
, и этомощьбыть проще (или намного сложнее).