Прежде чем кто-либо пометит это как дубликат из другой бочки, полной вопросов о WCF, мне не нужны ссылки MSDN и ссылки на статьи в блогах. Я могу использовать Google для себя, и занимаюсь этим уже 3 дня, поэтому, если все, что у вас есть, - это ссылки Google, пожалуйста, воздержитесь.
У меня чертовски много времени с размещенной в IIS службой WCF с использованием wsHttpBinding и настраиваемого аутентификатора пароля. IIS отлично работает с моими стандартными незащищенными службами ASPX и WCF (с использованием wsHttpBinding с режимом безопасности = "None", но для попытки режима безопасности = "Сообщение" или "Транспорт" требуется сертификат SSL в сочетании. Я к делу что я получаю эту ошибку: «Сертификат CN = SignedByCA должен иметь закрытый ключ, способный к обмену ключами. У процесса должны быть права доступа к закрытому ключу».
По моим исследованиям, либо служба, на которой размещена моя служба WCF, не может получить доступ к файлу закрытого ключа моего сертификата, либо я неправильно сгенерировал сертификат.
Я сгенерировал ключи, используя:
makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer
makecert -sk SignedByCA -iv TempCA.pvk -n "CN=SignedByCA" -ic TempCA.cer SignedByCA.cer -sr currentuser -ss My
Затем я импортировал сертификат TempCA в хранилище доверенного корневого центра сертификации и импортировал SignedByCA.cer в свое «личное» хранилище локального компьютера. WCF теперь может видеть сертификат, но указанная выше ошибка указывает либо на проблему с разрешениями, либо на ключевую проблему. Я также попытался импортировать сертификат в личный магазин IIS Admin Service, но безуспешно.
Кстати, я добавил это в свой web.config для службы:
<serviceCertificate
findValue="...."
x509FindType="FindByThumbprint"
storeLocation="LocalMachine"
storeName="My"
/>
Я получаю сообщение об ошибке из своего клиентского проекта, когда добавляю / обновляю ссылку на сервис.
Судя по моему исследованию, в Windows 7 я смогу использовать диспетчер сертификатов, щелкнуть правой кнопкой мыши сертификат в оснастке MMC и выбрать «Все задачи» -> «Управление секретным ключом» ... или что-то подобное. Когда я щелкаю сертификат правой кнопкой мыши, я не вижу эту опцию, у меня есть только эти опции в разделе «Все задачи»: [Открыть, запросить сертификат с новым ключом, обновить сертификат с новым ключом, экспортировать ...] Это наводит меня на мысль, что это проблема с сертификатом, а не проблема с приватом.
Заранее спасибо.