WCF с netTcpBinding и сертификатом безопасности транспорта - PullRequest
3 голосов
/ 21 мая 2009

Мне нужно защитить службу WCF, которая использует netTcpBinding и напрямую подключается к приложению на основе Windows Forms. Мне нужно только, чтобы он был защищен на транспортном уровне.

Я почти уверен, что он работает локально, то есть я могу запустить службу локально и подключиться к ней с помощью клиента.

Когда я пытаюсь настроить службу так, чтобы она работала на сервере, а не на моем локальном компьютере, у меня возникают проблемы с сертификатами. В журнале ошибок указывается, что сертификат должен иметь закрытый ключ, способный к обмену ключами, и что процесс должен иметь права доступа к закрытому ключу.

Я использую сертификат разработки, созданный с помощью makecert.

makecert -n "CN=MY COMPANY DEBUG" -pe -sky exchange Debug.cer

Я должен признать, что я очень плохо знаком с использованием сертификатов. У кого-нибудь есть указания на то, как я могу это исправить, или лучший способ использовать сертификат для добавления безопасности транспорта в службу WCF с помощью netTcpBinding?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 21 мая 2009

Попробуйте это:

makecert -n "CN=MY COMPANY DEBUG" -pe -sky exchange Debug.cer -sv Debug.pvk
pvk2pfx -pvk Debug.pvk -spc Debug.cer -pfx Debug.pfx

В результате вы получите три файла: файл .cer (открытый ключ), .pvk (закрытый ключ) и .pfx (обмен ключами с обоими). Затем вы можете установить файл .pfx на сервер следующим образом:

certutil -p "" -importPFX Certificates\Debug.pfx

На стороне клиента вам нужно только установить файл .cer. Эти установки (.cer и .pfx выше) также можно выполнить с помощью оснастки MMC «Сертификаты» («Пуск», «Выполнить», MMC.exe, затем добавьте оснастку «Сертификаты» для текущей машины).

0 голосов
/ 21 мая 2009

Чтение это (охватывает случай https, но все еще может помочь) и это .

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

...