Вопрос

У нас есть серверное приложение Windows типа термоусадочной пленки, в котором нам нужно создать самозаверяющий сертификат на сервере, который будет использоваться некоторыми веб-службами WCF.Из наших поисковых запросов в Интернете выяснилось, что утилита makecert в PlatformSDK от Microsoft не может распространяться вместе с нашим приложением, поэтому мы ищем альтернативы.

Кто-нибудь знает, как использовать OpenSSL для создания сертификата и получения его в хранилище сертификатов Windows LocalMachine?Или, в качестве альтернативы, это просто вставить сертификат в хранилище в приложении .NET, и мы должны просто создать файл сертификата с помощью openssl?Будем признательны за любую помощь / предложения.

Это было полезно?

Решение

[К сожалению, я пока не могу ничего комментировать, поэтому опубликую это как ответ.]

Я вижу, что этот пост немного устарел, но я нахожусь в подобной ситуации и обнаружил его в файле redist.txt в Visual Studio 2008:

Windows SDK Files

Subject to the license terms for the software, the following files may be distributed unmodified:

MageUI.exe
Mage.exe
Makecert.exe

Не уверен, что что-то изменилось (и если моя интерпретация верна), но похоже, что makecert.exe, включенный как часть Windows SDK, который, в свою очередь, включен как часть установки VS2008, действительно может быть распространен.

Другие советы

Теперь вы можете создавать самоподписанные сертификаты с помощью PowerShell Команды, которые вам нужны, это New-SelfSignedCertificate и Export-PfxCertificate. Пример: создать сертификат

New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname orin.windowsitpro.internal

экспортировать его

Export-PfxCertificate -cert cert:\localMachine\my\CE0976529B02DE058C9CB2C0E64AD79DAFB18CF4 -FilePath e:\temp\cert.pfx -Password $pwd

Эта ссылка действительно полезна

http://windowsitpro.com/blog/creating-self-signed-certificates-powershell

У-у-у!Для тебя пришло время для pinvoke

crypt32 обеспечивает Сертификат createselfsigncertificate функция;если это удастся, вы можете сохранить его в личном хранилище пользователя (или в машинном хранилище, если вы работаете с повышенными правами).

Я не использовал OpenSSL, но я в той же лодке и нашел эту статью полезной:

Защита служб WCF с помощью сертификатов

Автор проведет вас через установку служб сертификации Microsoft, создаст центр сертификации, который можно добавить в доверенные центры сертификации (как на клиенте, так и на сервере, поскольку он самозаверяющий), а затем сгенерирует сертификаты клиента и сервера, которые объединяются в цепочку из подписанный сертификат CA.

Клиентские сертификаты вам не понадобятся, но они помогут вам создать самозаверяющий CA и сертификат сервера.

Одной из альтернатив для программной генерации сертификатов является C # -версия Bouncy Castle. http://www.bouncycastle.org/csharp/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top