2008-10-09 15 views
8

Mamy aplikację typu serwer Windows służącą do pakowania kurczliwego, w której musimy utworzyć samopodpisany certyfikat na serwerze, który będzie używany przez niektóre usługi WWW WCF. Z naszych wyszukiwań w Internecie wynika, że ​​narzędzie makecert w PlatformSDK firmy Microsoft nie może być dystrybuowane z naszą aplikacją, więc szukamy alternatyw.Własny certyfikat w systemie Windows bez makecert?

Czy ktoś wie, jak korzystać z OpenSSL w celu utworzenia certyfikatu i przekazania go do magazynu certyfikatów Windows LocalMachine? Lub alternatywnie czy to proste, aby wstawić certyfikat do sklepu w aplikacji .NET i czy powinniśmy po prostu utworzyć plik certyfikatu z openssl? Każda pomoc/sugestia zostanie doceniona.

+0

co pan skończyć się robi? –

+0

Rzeczywiście zakończyliśmy zmianę powiązań i nie używaliśmy certyfikatu po stronie serwera. Konfigurowanie procedury instalacji usług certyfikatów Microsoft, jak wspomniano poniżej, jest prawdopodobnie preferowaną metodą, ale byłoby wspaniale, gdyby pojawiły się alternatywne rozwiązania. –

Odpowiedz

8

[Niestety, nie mogę wypowiedzieć się na temat czegokolwiek jeszcze, więc będę pisać to jako odpowiedź.]

widzę, że ten post jest trochę stary, ale jestem w podobnej łodzi i Znalazłem to w Visual Studio 2008 pliku REDIST.TXT:

Windows SDK Files 

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

MageUI.exe 
Mage.exe 
Makecert.exe 

Nie wiem, czy coś się zmieniło (i jeśli moja interpretacja jest poprawna), ale wygląda na to makecert.exe włączone jako część Windows SDK, który z kolei jest włączony jako część instalacji VS2008, może zostać ponownie rozprowadzony.

+0

To także moje zrozumienie. – EricLaw

+0

Co ciekawe, 'makecert' zniknął w pliku redist.txt VS2010 – Cameron

2

Woohoo! Czas na pinvoke dla ciebie

crypt32 zapewnia funkcję CertCreateSelfSignCertificate; Jeśli to się powiedzie, możesz zapisać go w osobistym sklepie użytkownika (lub w magazynie urządzenia, zakładając, że pracujesz na wzniesionym poziomie).

2

Nie korzystałem z OpenSSL, ale znajduję się w tej samej łodzi i uznałem ten artykuł za pomocny:

Securing WCF Services with Certificates

autor poprowadzi Cię przez proces instalacji Microsoft Certificate Services, tworząc certyfikacji, który może być dodawany do zaufanych urzędów certyfikacji (zarówno klienta, jak i serwera, ponieważ jest to własny podpisany), a następnie generowanie certyfikatów klienta i serwera ten łańcuch z certyfikatu CA z podpisem własnym.

Nie będziesz potrzebować certyfikatów klienta, ale pomoże Ci utworzyć samopodpisany certyfikat CA i serwera.

7

można teraz tworzyć certyfikatów z podpisem własnym z PowerShell The potrzebne są polecenia New-SelfSignedCertificate i Export-PfxCertificate. Ex: aby utworzyć certyfikat

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

ją eksportować

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

Ten link jest bardzo pomocna

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