У меня есть веб-сервис ASP.NET, который взаимодействует с другим веб-сервисом с помощью сертификата на стороне клиента. Сертификат находится в магазине LOCAL_MACHINE. Я предоставил "Сетевым службам" доступ к сертификату через winhttpcertcfg.exe. Я знаю, что даю разрешение правильно, потому что у меня все работает над ящиком разработки, и разрешение было шагом, который заставил его работать.
Итак, я пытаюсь понять, чем отличается мой ящик для разработки от моего производственного модуля. У них обоих есть IIS 6.0. У них обоих установлен мой веб-сервис. У них обоих есть один и тот же сертификат в хранилище локального компьютера с разрешением «Сетевые службы». Они оба могут видеть другой веб-сервис через IE, когда выбран сертификат. Оба они могут использовать другой веб-сервис через приложения, не относящиеся к IIS, используя сертификат в CURRENT_USER. Я визуально просмотрел все известные мне настройки IIS, и они кажутся одинаковыми.
Итак, существует ли какая-то настройка, которая могла бы заставить "Сетевые службы" искать сертификаты где-то помимо хранилища LOCAL_MACHINE? Или есть что-то еще, что я могу не заметить?
Я попробовал процедуру, описанную Джеком Б. Нимблом, для добавления сертификата в учетную запись сетевых служб, но это, похоже, не помогло.
Я, наконец, решил свою проблему: 1. в IIS, перейдя на вкладку «Безопасность каталогов» на моем веб-сайте; 2. нажав «Сертификат сервера»; 3. импортировав свой сертификат через мастер.
Я считал этот шаг излишним, потому что он имел дело с сертификатами на стороне сервера. Несмотря на то, что сертификат уже был в LOCAL_MACHINE, что-то в описанном выше процессе заставляет «Сетевые службы» его увидеть. Это верно даже после «удаления» сертификата с помощью мастера.
Это шаг, который был выполнен в моем корпусе для разработки (экспериментально), но не в моем производственном блоке.
«Сетевые службы» определенно сейчас используют сертификат LOCAL_MACHINE, потому что переключение разрешений также переключает способность моего веб-сервиса взаимодействовать.
Ты пробовала эта процедура на установку сертификата для учетной записи сетевых служб? Это включает временное добавление учетной записи сетевых служб в группу администратора.
Вы также можете посмотреть на решение получить сертификат для работы в IIS 6.0