我通过SSL_get_peer_certificate()
收到证书,可以通过X509_get_subject_name(cert)
阅读有关该证书的信息。这就是为什么我很确定从这一方面一切正常。我还更新了我的CA证书并致电SSL_set_default_verify_paths(context)
。
我在几个网站上试过这个(google.de,openssl.org,...)。我真的不知道为什么我没有得到返回值0(= X509_V_OK)。
我还尝试了SSL_CTX_load_verify_locations()
,包括c_rehash
ca-certificates目录。这就是CA-Certificates应该正确加载到SSL_CTX的原因。来自SSL_get_verify_result()
的错误代码20
更新
如果我尝试使用OpenSSL的命令行实用程序(openssl s_client -showcerts -connect www.google.com:443 -CApath /etc/ssl/certs/
,我得到的结果是返回代码0(ok)。这怎么可能呢?