8

我们有一个收缩包装类型的 Windows 服务器应用程序,我们需要在服务器上创建一个自签名证书以供某些 WCF Web 服务使用。根据我们在网络上的搜索,Microsoft PlatformSDK 中的 makecert 实用程序似乎无法与我们的应用程序一起分发,因此我们正在寻找替代方案。

有谁知道如何使用 OpenSSL 创建证书并将其放入 Windows LocalMachine 证书存储区?或者,是否可以直接将证书插入 .NET 应用程序的存储中,我们是否应该只使用 openssl 创建证书文件?任何帮助/建议将不胜感激。

4

5 回答 5

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 安装的一部分包含在实际上可以重新分发。

于 2010-02-16T13:41:25.047 回答
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

这个链接真的很有帮助

https://www.itprotoday.com/powershell/creating-self-signed-certificates-powershell

于 2015-06-27T14:34:13.417 回答
2

呜呼!是时候给你pinvoke了

crypt32 提供了CertCreateSelfSignCertificate函数;如果成功,您可以将其存储在用户的个人商店中(或者假设您正在提升工作的机器商店)

于 2008-10-09T14:55:27.907 回答
2

我没有使用过 OpenSSL,但我在同一条船上,发现这篇文章很有帮助:

使用证书保护 WCF 服务

作者将引导您安装 Microsoft 证书服务,创建可以添加到受信任证书颁发机构的 CA(在客户端和服务器上,因为它是自签名的),然后生成从自签名 CA 证书链接的客户端和服务器证书.

您不需要客户端证书,但它确实可以帮助您创建自签名 CA 和服务器证书。

于 2008-10-09T20:21:21.230 回答
2

以编程方式生成证书的一种替代方法是 Bouncy Castle 的 C# 版本。 http://www.bouncycastle.org/csharp/

于 2011-02-02T07:44:17.770 回答