我正在使用带有WIF的WCF网络服务。更多规范,我正在使用WS2007FederationHttpBinding。一切都适用于用于开发的localhost机器。
但是,当尝试使用部署在IIS上的服务器进行远程安装并且从其他PC启动客户端时,我的通道Open方法失败,但出现以下异常:
X.509证书CN = MyOwnCertificate链构建失败。使用的证书具有无法验证的信任链。替换证书或更改certificateValidationMode。
(MyOwnCertificate是使用makecert的自签名证书;证书已插入受信任的根证书颁发机构中。)
所以我首先尝试通过以下代码删除此约束,以进行测试:
this.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust;
this.ClientCredentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck;
哪个indeeds删除了初始异常错误。但是,InnerSecurityTokenProvider现在返回它自己的异常:
“Le message n'a paspuêtretraitécarl'action 'http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/SCT'n'est pas valide ou non reconnn。“}
(抱歉法语信息)。
有没有办法让自签名证书在这样的远程场景中工作? (我更喜欢,因为我只需要内部使用的证书)
是否可以使用openssl生成的证书(http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php)?
非常欢迎您的帮助。感谢。
编辑06/01/2012:还使用已建议的签名证书(+撤销列表)进行测试,在本地工作但在远程失败。证据被定义为解释here。我在受信任的根下部署了CA证书。 IP和服务器证书部署在MY(使用pfx)和Trusted People(使用cer)中。此外,还设置了IIS,以便NETWORK帐户可以访问在LOCALMACHINE MY下部署的私钥。
编辑07/01/2012:当证书由官方CA颁发(即verisign,thawte ......)时,它可以正常工作。
答案 0 :(得分:1)
尝试创建名为“SelfCA”的证书;然后将其插入您的受信任的根存储区。然后创建一个供您使用的新证书,但这次用“SelfCA”签名。
参考此页: