Domanda

Disponiamo di un'applicazione server Windows di tipo termoretraibile in cui è necessario creare un certificato autofirmato sul server per essere utilizzato da alcuni servizi Web WCF. Dalle nostre ricerche sul Web, sembra che l'utilità makecert in PlatformSDK di Microsoft non possa essere distribuita con la nostra applicazione, quindi stiamo cercando alternative.

Qualcuno sa come usare OpenSSL per creare un certificato e ottenerlo nell'archivio certificati LocalMachine di Windows? Oppure, in alternativa, è semplice inserire il certificato nell'archivio in un'applicazione .NET e dovremmo semplicemente creare il file del certificato con openssl? Qualsiasi aiuto / suggerimento sarebbe apprezzato.

È stato utile?

Soluzione

[Sfortunatamente, non posso ancora commentare nulla, quindi pubblicherò questo come risposta.]

Vedo che questo post è un po 'vecchio, ma sono su una barca simile e l'ho trovato nel file redist.txt di 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

Non sono sicuro che qualcosa sia cambiato (e se la mia interpretazione è corretta), ma sembra che makecert.exe sia incluso come parte dell'SDK di Windows, che è a sua volta incluso come parte dell'installazione di VS2008 può effettivamente essere ridistribuito.

Altri suggerimenti

Ora puoi creare certificati autofirmati con PowerShell I comandi necessari sono New-SelfSignedCertificate e Export-PfxCertificate. Ex: per creare un certificato

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

per esportarlo

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

Questo link è davvero utile

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

Woohoo! È tempo di Pinvoke per te

crypt32 fornisce una funzione CertCreateSelfSignCertificate ; se ciò riesce, puoi memorizzarlo nel negozio personale dell'utente (o nel negozio di macchine supponendo che tu stia lavorando in modo elevato)

Non ho usato OpenSSL, ma sono nella stessa barca e ho trovato utile questo articolo:

Protezione dei servizi WCF con certificati

L'autore ti guida nell'installazione di Microsoft Certificate Services, creando una CA che può essere aggiunta alle autorità di certificazione attendibili (sia su client che su server, poiché è autofirmata), quindi genera certificati client e server che si concatenano dall'auto- certificato CA firmato.

Non avrai bisogno dei certificati client, ma ti aiuta a creare una CA autofirmata e un certificato server.

Un'alternativa per la generazione di certificati a livello di programmazione è la versione C # di Bouncy Castle. http://www.bouncycastle.org/csharp/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top