我正在为windows开发一个解决方案(web ),它使用WSFederation进行身份验证。由于im处于蔚蓝测试阶段(本地测试成功),我决定使用与本地测试相同的自签名证书。
这里的问题是,我收到了一个错误:“ X.509证书CN=mytestsite.com.br不在可信人员存储区。X.509证书CN=mytestsite.com.br链构建失败。所使用的证书具有无法验证的信任链”。
这个错误是完全有意义的,因为它是一个自签名的证书,但是由于im在一个暂存环境中(而且我绝对不想现在要求我的赞助者为一个有效的证书要求额外的预算)。我还是想用那张自签的。因此,我将certificateValidationMode改为"None",但仍然得到相同的验证错误.似乎验证模式被忽略了!
有人知道我能做些什么吗?(买一张有效的证书将是我最后一次尝试,因为它们对我的预算来说非常昂贵.)
发布于 2013-02-27 13:10:45
我成功地将"certificateValidationMode“添加到STS web.config中。
发布于 2013-02-26 17:34:28
我只需使用自签名证书,使用代码将其“部署”到您的Trusted People存储,一切都应该是好的。无论如何,这将更接近于实际生产使用(如果在生产中使用PeerTrust,那么您也必须在那里做同样的事情,即使使用真正的证书)。
private static void CopyServerCertIntoPeopleStore()
{
var myStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
myStore.Open(OpenFlags.ReadOnly);
var peopleStore = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
var cert = myStore.Certificates.Find(
X509FindType.FindByThumbprint,
SettingFetcher.GetSetting(SettingFetcher.SettingType.ApplicationVariable, "WcfServiceCertificateThumbprint"),
true
).OfType<X509Certificate2>().First();
peopleStore.Open(OpenFlags.ReadWrite);
peopleStore.Add(cert);
}使用类似的东西,只需将SettingFetcher替换为RoleEnvironment.GetConfigurationSettingValue或其他什么来获取拇指指纹。
https://stackoverflow.com/questions/15094179
复制相似问题