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