Подтвердить что ты не робот

Сертификат WCF для получения сертификата

Я использую сертификат с моей службой WCF, поэтому у меня есть кодированное значение в web.Config

<identity>
  <certificate encodedValue="large string!!!!!!!" />
</identity>

Значение было создано Visual Studio в разработке с использованием моего тестового сертификата.

Теперь я развертываю, я хочу получить закодированное значение для сертификата, поддерживаемого третьей частью, которая управляет сервером.

Я знаю, что использование инструмента svcutil.exe, как описано ниже, даст мне это.

svcutil.exe http://servicename.svc

Что я хочу знать,

  • Это рекомендуемый подход
  • Есть ли какие-либо способы сделать это, чтобы я отсутствовал.

РЕДАКТИРОВАТЬ: Visual Studio недоступна, и я не могу перенести сертификат, поэтому он должен быть решением без VS

4b9b3361

Ответ 1

Это можно сделать, экспортировав сертификат (через IIS или сертификат Snap In) в файл .cer без закрытого ключа в форме base64, затем запустив его в блокноте и скопировав и вставив в него в cododedValue

Ответ 2

Если он управляется третьим лицом, сертификат сервера будет загружен в хранилище сертификатов Windows и выбран как часть поведения службы

В поведении службы вы можете выбрать сертификат, который он использует в конечной точке,

<behaviors>
  <serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <serviceCredentials>
        <serviceCertificate findValue="CN=myhost.mydomain.org" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>

Элемент используется для подключения клиента. Просто обновите ссылку на службу для прокси-сервера в клиентском решении, и элемент идентификации должен быть обновлен версией общедоступных частей нового сертификата с кодированным значением.