Ответ 1
Это можно сделать, экспортировав сертификат (через IIS или сертификат Snap In) в файл .cer без закрытого ключа в форме base64, затем запустив его в блокноте и скопировав и вставив в него в cododedValue
Я использую сертификат с моей службой WCF, поэтому у меня есть кодированное значение в web.Config
<identity>
<certificate encodedValue="large string!!!!!!!" />
</identity>
Значение было создано Visual Studio в разработке с использованием моего тестового сертификата.
Теперь я развертываю, я хочу получить закодированное значение для сертификата, поддерживаемого третьей частью, которая управляет сервером.
Я знаю, что использование инструмента svcutil.exe, как описано ниже, даст мне это.
svcutil.exe http://servicename.svc
Что я хочу знать,
РЕДАКТИРОВАТЬ: Visual Studio недоступна, и я не могу перенести сертификат, поэтому он должен быть решением без VS
Это можно сделать, экспортировав сертификат (через IIS или сертификат Snap In) в файл .cer без закрытого ключа в форме base64, затем запустив его в блокноте и скопировав и вставив в него в cododedValue
Если он управляется третьим лицом, сертификат сервера будет загружен в хранилище сертификатов Windows и выбран как часть поведения службы
В поведении службы вы можете выбрать сертификат, который он использует в конечной точке,
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceCredentials>
<serviceCertificate findValue="CN=myhost.mydomain.org" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Элемент используется для подключения клиента. Просто обновите ссылку на службу для прокси-сервера в клиентском решении, и элемент идентификации должен быть обновлен версией общедоступных частей нового сертификата с кодированным значением.