AcquireCredentialsHandle返回SEC_E_NO_CREDENTIALS

Bru*_*uce 3 winapi sspi

我已经设法使用CertOpenSystemStore打开证书存储区,我可以使用我通过Windows Vista Ultimate上的MMC控制台安装的CertFindCertificateInStore找到我的自签名证书(使用OpenSSL创建).但是我不确定这个错误到底是什么意思,因为我无法在MSDN文档中找到答案.这是证书问题吗?或者操作系统问题,从某种意义上说它应该是一个Windows Server操作系统来实现这一点?

我在Delphi 2010中使用Win32 API,但C示例很好.

谢谢,布鲁斯

Rem*_*anu 5

MSDN中的错误描述相当模糊:

安全包中没有可用的凭据.

Afaik此错误表示SSPI SChannel程序包未找到证书的私钥,或证书对SSL/TLS无效.确保证书/私钥在PROV_RSA_SCHANNEL加密提供程序(CSP)中加载,而不是在增强型CSP中加载.

您应该为(更多)更详细的错误信息启用SChannel日志记录,请参阅如何启用Schannel事件日志记录(KB用于IIS,但描述的方法在计算机上全局记录了Schannel日志记录).

自从我使用SSL/TLS以来已经有一段时间了,但如果我可以给出一个建议:谷歌搜索"John Banes"的帖子以及你的错误,你可能会找到一些线索.