|
|
1
2
除了前面的回答。 如果要手动检查具有不受信任根(例如自签名)的证书,则需要 1)设置标志以忽略不受信任的证书
2)发送数据请求
3)只有在数据请求返回后,我们才能查看证书信息和检查指纹。 要获得指纹,我们必须使用cryptapi中的方法, 所以需要包含“wincrypt.h”并将crypt32.lib添加到链接器
4)为什么使用指纹来比较证书? 证书中有三个有趣的字段要比较: 序列号,公钥,指纹。 序列号只是颁发证书的CA选择的唯一编号, 公钥很好的解决方案,但指纹是在完整证书上计算的哈希值 ( https://security.stackexchange.com/questions/35691/what-is-the-difference-between-serial-number-and-thumbprint ) |
|
|
2
0
如果在调用httpopenrequest时设置internet标志安全,wininet将已经验证返回的证书的域名是否与证书匹配,并且证书链是可信的。 之后你可以做的事情很少:
供将来参考,来自msdn:“ http://msdn.microsoft.com/en-us/library/aa385328(VS.85).aspx “。如果安装了IE8.0,则会有一个新选项公开服务器的证书链。 Internet选项服务器证书链上下文 一百零五 将服务器证书链上下文检索为重复的pccert_chain_上下文。您可以将此重复上下文传递给任何接受pccert_chain_context的crypto api函数。处理完证书链上下文后,必须在返回的pccert_chain_上下文上调用certfreecertificatechain。 版本:需要Internet Explorer 8.0。 |