我想验证服务器的证书.我有一个boost :: asio :: ssl :: context
这成功验证了证书:
context.load_verify_file("E:\\a\\windows\\Path\\to\\certificate\\9207bca9.0");
但是,我不希望显式指定要验证证书的文件.我希望能够将它们放在一个目录中,并告诉上下文使用该文件夹中的文件来验证证书.所以我这样做:
context.add_verify_path("E:\\a\\windows\\Path\\to\\certificate");
验证不成功
注意:文件名9207bca9.0:9207bca9是CA证书主题的哈希值,其扩展名为“.0”以满足此处找到的add_verify_path方法的要求(此文件的唯一内容也是根证书)记住,我已成功使用此文件验证证书):
有什么建议?
最佳答案 我能想到的只有两种可能性,第一种是你的哈希值不正确,这可以这样验证:
openssl x509 -noout -hash -in ca-certificate-file
第二个是目录配置中存在一些错误,导致OpenSSL无法使用CA目录,例如,权限和所有权在Linux系统上很重要,不确定这些在Windows平台上的重要程度.确定此类错误的唯一方法是通过调试器跟踪验证阶段,并在扫描目录时直接观察代码.