Сбой соединения Cryptlib - PullRequest
0 голосов
/ 28 мая 2019

Мое приложение - это клиент, который использует cryptlib для безопасного подключения к серверу. Похоже, что cryptlib не нравится что-то в сертификате сервера, и соединение обрывается.

Я попытался установить для уровня соответствия сертификатов самый низкий уровень и вообще отключить проверку сертификатов.

cryptCreateSession( &cryptSession, CRYPT_UNUSED, CRYPT_SESSION_SSL );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_SSL_OPTIONS, CRYPT_SSLOPTION_DISABLE_NAMEVERIFY );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_SSL_OPTIONS, CRYPT_SSLOPTION_DISABLE_CERTVERIFY );
cryptSetAttribute( cryptSession, CRYPT_OPTION_CERT_COMPLIANCELEVEL, CRYPT_COMPLIANCELEVEL_OBLIVIOUS );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_SSL_OPTIONS, CRYPT_SSLOPTION_MINVER_TLS12 );
cryptSetAttributeString( cryptSession, CRYPT_SESSINFO_SERVER_NAME, _ServerAddress.c_str(), _ServerAddress.size() );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_SERVER_PORT, port );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_ACTIVE, 1 );

Все эти вызовы функций возвращают OK, кроме последнего, который возвращает -32 (CRYPT_ERROR_BADDATA). Я получаю сообщение об ошибке: «Сервер предоставил поврежденный / недействительный сертификат, повторите попытку с уменьшенным уровнем проверки соответствия сертификатов».

...