首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带OpenSSL证书的WCF服务

带OpenSSL证书的WCF服务
EN

Stack Overflow用户
提问于 2009-10-13 20:02:55
回答 1查看 2.7K关注 0票数 2

我已经使用makecert生成的基本自签名证书(使用许多关于这个主题的在线教程)运行了我的WCF we服务,但发现在生成makecert似乎无法处理的证书时,我们需要某些功能。因此,我试图使用OpenSSL创建我的证书,用我们自己的CA (也是用OpenSSL生成的)对它们进行签名。我似乎正在创建和注册证书,但当我试图查询该get服务时,我得到以下信息:

证书“证书详细信息”必须有一个私钥。进程必须具有私钥的访问权限.

尽管我可能会尝试,但我似乎无法让系统识别出我认为的私钥(也许我完全错了,我应该看另一个文件。)有人能给我一些关于我哪里出错的明智的建议吗?

我正在生成这样的证书:

代码语言:javascript
运行
复制
# 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文件中,我用我的新证书的名称交换了以前的证书名:

代码语言:javascript
运行
复制
<!-- 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领域相当陌生,而且我已经在黑暗中摸索了很多东西。我会非常感激任何能启发我的人!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-14 00:45:17

Windows不理解OpenSSL的PEM密钥格式。生成密钥对后,需要将它们插入PKCS12 (.pfx)格式,以便能够导入整个密钥对。类似于:

代码语言:javascript
运行
复制
openssl pkcs12 -export -in yourcert.cer -inkey yourkey.pem -out output.pfx

然后像以前一样使用证书卡导入.pfx。应该提示您输入您在导出过程中提供的密钥密码,然后当您查看证书时应该会看到这个小密钥图标,该证书显示“您有一个与此证书相对应的私钥”。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1562604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档