Hallo all,Помощь, необходимая для обеспечения моей службы WCF с использованием сертификата
Я пишу службу в сценарии Интернета. Я должен реализовать шифрование сообщений. Я получил все, но когда я просматриваю эту службу из IIS, я получаю следующее исключение.
Ошибка сервера в '/ MyTestService' Приложение.
Keyset не существует
Описание: Необработанное исключение произошло во время выполнения текущего запроса веб на . Просмотрите трассировку стека для получения дополнительной информации о ошибке и где она возникла в .
Сведения об исключении: System.Security.Cryptography.CryptographicException: Keyset не существует ............................ .........
........... .................................................. .......
Кажется, проблема с сертификатом. Может кто-нибудь объяснить, как обращаться с материалами сертификата и, пожалуйста, подробно. Просто подумайте, что я новичок в сертификатах.
<system.serviceModel>
<services>
<service name="Test.MyService" behaviorConfiguration="MyServiceBehavior">
<!-- Service Endpoints -->
<endpoint address="MyTestService" binding="wsHttpBinding" bindingConfiguration="WebserviceHttpBinding" contract="Test.IMyService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="WebserviceHttpBinding">
<security mode="Message">
<message clientCredentialType="UserName" negotiateServiceCredential="false"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Test.CredentialValidator, Test"/>
<serviceCertificate findValue="RPKey" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My"/>
</serviceCredentials>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Есть ли какая-либо ссылка, где я могу прочитать о государственных и частных сертификатах или видеоуроке? – Saghar
Условия частных и открытых сертификатов, вероятно, неверны. Сертификатом является стандартизованный контейнер для ключей и связанных с ним сведений (например, эмитент, срок действия, предмет, серийный номер и т. Д.). Сертификат, хранящийся на сервере, должен содержать секретный закрытый ключ и открытый ключ. Сертификат, предоставленный клиентам, должен содержать только открытый ключ - Инфраструктура открытого ключа. –
Ваше решение сработало для меня - чем вы. – Vlad