1

我正在使用带有 WIF 的 WCF Web 服务。更多规范,我使用的是 WS2007FederationHttpBinding。在用于开发的 localhost 机器上一切正常。

但是,当尝试使用部署在 IIS 上的服务器进行远程安装并从另一台 PC 启动客户端时,我的通道打开方法失败,并出现以下异常:

X.509 证书 CN=MyOwnCertificate 链构建失败。使用的证书具有无法验证的信任链。更换证书或更改 certificateValidationMode。

(MyOwnCertificate 是使用 makecert 的自签名证书;该证书已插入受信任的根证书颁发机构)。

因此,出于测试目的,我首先尝试通过以下代码删除此约束:

this.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust; 
        this.ClientCredentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck;

这确实消除了最初的异常错误。然而 InnerSecurityTokenProvider 现在返回它自己的异常:

“Le message n'a pas pu être traité car l'action 'http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/SCT' n'est pas valide ou non reconnue。 "}

(对不起法语消息)。

有没有办法让自签名证书在这样的远程场景中工作?(我更喜欢,因为我只需要内部使用的证书)

它是否适用于使用 openssl (http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php) 生成的证书?

我们将非常欢迎您的帮助。谢谢。

编辑 06/01/2012 :还按照建议使用签名证书(+吊销列表)进行了测试,在本地工作但在远程失败。证书已按照此处的说明进行定义。我在受信任的根下部署了 CA 证书。IP 和服务器证书部署在 MY(使用 pfx)和 Trusted People(使用 cer)中。还设置了 IIS,以便 NETWORK 帐户可以访问部署在 LOCALMACHINE MY 下的私钥。

编辑 07/01/2012 :当证书由官方 CA 颁发(即 verisign、thawte ...)时,它可以工作

4

1 回答 1

1

尝试创建一个名为“SelfCA”的证书;然后将其插入您的受信任的根存储。然后创建一个新证书供您使用,但这次使用“SelfCA”对其进行签名。

参考这个页面:

http://msdn.microsoft.com/en-us/library/ms733813.aspx

于 2012-01-05T14:50:58.797 回答