我正在使用 IdentityServer3 进行身份验证。IdentityServer3 正在使用根据本文使用 makecert ar 创建的签名证书(用于签署令牌的证书)。
makecert -r -pe -n "CN=SigningOnlyCert" -b 01/01/2015 -e 01/01/2020 -sky signature -a sha256 -len 2048 -ss my -sr LocalMachine
此仅签名证书与 identityserver3 一起工作正常
现在我正在尝试使用SustainSys库添加 SAML2 外部提供程序。我将 SPOptions 配置为加载相同的仅签名证书。但是它会
Saml2AuthenticationOptions.SPOptions.ServiceCertificates.Add(LoadCertificateFromWindwosStore())
抛出错误
提供的证书对加密/解密无效。Windows 证书存储中对其私钥的权限可能不足,或者证书本身可能没有正确的用途。如果您只想将其用于签名,请将 Use 属性设置为 Signing (CertificateUse.Signing)。
当我调试库代码时,实际的异常是Bad Key
. 如#412中所述
现在确定为什么这个证书不能与 SustainSys 一起使用,当它与 IdentityServer3 一起使用时?
(请注意,如果我按照@brockallen 文章创建新的 SSL 证书,
makecert -r -pe -n "CN=SSLCert" -b 01/01/2015 -e 01/01/2020 -sky exchange -a sha256 -len 2048 -ss my -sr localMachine
然后 SustainSys 库使用 SSL 证书。但不是带有signonly证书)