gpt4 book ai didi

带有 OpenSSL 证书的 WCF 服务

转载 作者:行者123 更新时间:2023-12-02 06:45:05 25 4
gpt4 key购买 nike

我已经使用 makecert 生成的基本自签名证书运行我的 WCF web 服务(使用关于该主题的许多在线教程中的一些),但我发现在生成 makecert 不需要的证书时我们需要某些功能似乎处理。因此,我正在尝试使用 OpenSSL 创建我的证书,并使用我们自己的 CA(也使用 OpenSSL 生成)对其进行签名。我似乎可以很好地创建和注册证书,但是当我尝试查询网络服务时,我得到以下信息:

证书“[Cert Details]”必须有私钥。该进程必须具有私钥的访问权限。

虽然我可能会尝试,但我似乎无法让系统识别我认为的私钥(也许我完全错了,我应该完全查看另一个文件......)任何人都可以提供一些关于我可能哪里出错的明智建议?

我正在这样生成证书:

# Generate key and certificate request
openssl req -new -newkey rsa:1024 -nodes -keyout MyCompany.key -out MyCompany.csr

# Generate certificate from certificate request
openssl ca -batch -in MyCompany.csr -out MyCompany.cert

然后我可以在机器证书存储中注册“Mycompany.cert”(在这种情况下,服务器和客户端都在本地主机上运行),但是 MyCompany.key(我假设它是私钥,是吗?)不会导入,总是引用未知的文件格式。注册是通过带有证书管理单元的“mmc”实用程序完成的。

然后在我的客户端和服务器的 Web.Config 文件中,我用我的新证书的名称换掉以前的(有效的)证书名称:

<!-- Client Web.config -->
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="PeerOrChainTrust"/>
</serviceCertificate>
<clientCertificate findValue="MyCompany" storeLocation="CurrentUser" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
</clientCredentials>

<!-- Server Web.config -->
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerOrChainTrust"/>
</clientCertificate>
<serviceCertificate findValue="MyCompany" storeLocation="CurrentUser" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
</serviceCredentials>

当然,这会产生我之前列出的错误。我知道它正在查找证书,因为它在错误中显示的详细信息都是正确的,但我显然遗漏了一些东西。那么我还需要做些什么才能让 WCF 使用我的 OpenSSL 证书?

如果我的问题看起来很明显,或者如果我遗漏了一些关键信息,我深表歉意,但我对证书/SSL 领域相当陌生,我已经拥有的很多东西都是我在黑暗的。如果有人能启发我,我将不胜感激!

最佳答案

Windows 不理解 OpenSSL 的 PEM key 格式。生成 key 对后,您需要将它们塞入 PKCS12 (.pfx) 格式才能导入整个 key 对。像这样的东西:

openssl pkcs12 -export -in yourcert.cer -inkey yourkey.pem -out output.pfx

然后像以前一样使用证书管理单元导入 .pfx。系统应该提示您输入在导出期间提供的 key 密码,然后当您查看证书时应该会看到小 key 图标,上面写着“您有一个与该证书相对应的私钥”。

关于带有 OpenSSL 证书的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1562604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com