Берем makecert.exe с “C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin”
Можно взять с любого сервера где есть Visual Studio
Копируем утилиту например в каталог c:\Cert
В командной строке переходим в данный каталог и генерируем сертификат:
c:\Cert>makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=localhost -sky exchange -pe
localhost - можно заменить на имя сервера
Должны получить
Succeeded
Проверяем, что сертификат находить в локальном хранилище сертификатов:
mmc.exe
добавляем оснастку сертификаты локального компьютера и смотрим, что сертификат есть.
В IIS он также должен появиться в Server Certificates.
В WCF в web.config пишем
<serviceCertificate findValue="localhost"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
Перезапуск IIS.
Проверяете wcf в браузере. Скорее всего выдаст ошибку
"
Cannot find the X.509 certificate using the following search criteria:
StoreName 'My', StoreLocation '
LocalMachine
', FindType
'FindBySubjectName', FindValue '
localhost
'."
"The certificate 'CN=localhost' must have a private key that is capable of key exchange.The process must have access rights for"
Это из-за того, что IIS не может получить доступ к данному сертификату.
Идем в каталог
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
там будут файлы примерно такого названия
517f26abe54309705395e1f31ea3fa0e_0676bb44-ecb5-428b-a3ce-6e65fcfe3ffe
И на нужный ключ (по дате создания можно определить либо на весь каталог) добавляем права для чтения пользователю IIS_IUSRS.
Перезапуск IIS (iisreset)
Проверяете wcf в браузере.
Комментариев нет:
Отправить комментарий