首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Mono的WCF证书安全性

使用Mono的WCF证书安全性
EN

Stack Overflow用户
提问于 2011-07-22 10:55:59
回答 1查看 1.5K关注 0票数 3

我正在尝试将现有的应用程序迁移到Mono (v2.10.2)。

因此,我创建了一个带有BasicHttpBinding和消息安全性的测试WCF服务。客户端可以很好地使用.NET,但是在使用Mono运行时,它会失败。

客户端工厂实例化如下:

代码语言:javascript
复制
//var certificate = CertificateUtil.GetCertificate(StoreLocation.LocalMachine, 
//    StoreName.My, X509FindType.FindBySubjectDistinguishedName, CertName, true);
var certificate = new X509Certificate2("certificate.pfx", "password");

var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Message;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;

var epa = new EndpointAddress(
    new Uri("http://localhost:53076/Service1.svc"),
    new X509CertificateEndpointIdentity(certificate));

var factory = new ChannelFactory<IService1>(binding, epa);
factory.Credentials.ServiceCertificate.DefaultCertificate = certificate;
factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
factory.Credentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck;
factory.Credentials.ClientCertificate.Certificate = certificate;

var client = factory.CreateChannel();

在Mono中,应用程序在CreateChannel中失败,引发异常:

System.InvalidOperationException:绑定不支持契约'IService1‘允许的任何通道类型。

我调试了Mono源代码,发现问题是AsymmetricSecurityBindingElement.InitiatorTokenParameter == null。

我是Mono的新手,也许您可以向我介绍一个涵盖这个主题的文档/教程。

更新:

在konrad.kruczynski的帮助下,证书对象现在拥有一个私钥。例外仍然是一样的。所以这不是证书存储的问题。

EN

回答 1

Stack Overflow用户

发布于 2011-07-22 14:59:24

是的,在Windows上创建的证书通常不包含私钥。它们可以在某种缓存中找到。您应该能够使用指令创建带有私钥的证书。X509Certificate2应该在没有问题的情况下使用文件。您也可以尝试描述这里的过程。如果有任何问题,只管写。

同样值得补充的是,在Linux上创建的证书在Windows上也能很好地工作。

更新:

我不确定我是否正确地理解了你的评论。您可以使用这样的代码加载PFX证书:

代码语言:javascript
复制
var myCert = new X509Certificate2("filename.pfx", "password");

既然有钥匙,我就能用了。

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

https://stackoverflow.com/questions/6788982

复制
相关文章

相似问题

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