在OpenSSL中,我試圖在握手期間檢查證書鏈。
當客戶端連接創建澈SSL_CTX*
和SSL*
然後我設置驗證回調OpenSSL在證書驗證錯誤時自行終止
SSL_set_verify(_ssl, SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, verify_callback);
然後在功能我有
int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) {
bool ok = false;
[...]
return ok ? 1 : 0;
}
(我在GitHub上的例子複製的代碼)
當我執行它,如果函數返回1,一切正常,但當它返回0(又名失敗)整個過程停止(退出代碼0)
我目前在Win10 x64下編譯cygwin64,這是最新版本
我在做什麼錯?
另請參閱OpenSSL wiki上的[TLS Client](http://wiki.openssl.org/index.php/SSL/TLS_Client)。示例代碼具有打印證書的回調。 – jww