我们有一个收缩包装类型的Windows服务器应用程序,我们需要在服务器上创建一个自签名证书以供某些WCF Web服务使用。从我们在网上的搜索看来,Microsoft的PlatformSDK中的makecert实用程序似乎无法与我们的应用程序一起分发,因此我们正在寻找替代方案。
有谁知道如何使用OpenSSL创建证书并将其放入Windows LocalMachine证书存储区?或者,或者直接将证书插入到.NET应用程序的商店中,我们应该使用openssl创建证书文件吗?任何帮助/建议将不胜感激。
[不幸的是,我还没有评论任何内容,所以我会发布这个作为答案。]
我看到这篇文章有点旧了,但我在类似的船上,我在Visual Studio 2008 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
不确定某些内容是否已更改(如果我的解释是正确的),但看起来像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提供CertCreateSelfSignCertificate功能;如果成功,您可以将其存储在用户的个人商店(或机器商店,假设您正在升高工作)
我没有使用OpenSSL,但我在同一条船上,发现这篇文章很有用:
Securing WCF Services with Certificates
作者将指导您安装Microsoft证书服务,创建可以添加到受信任证书颁发机构的CA(在客户端和服务器上,因为它是自签名的),然后生成从自签名CA证书链接的客户端和服务器证书。
您不需要客户端证书,但它确实可以帮助您创建自签名CA和服务器证书。
编程生成证书的另一种方法是Bouncy Castle的C#-version。 http://www.bouncycastle.org/csharp/