TLS Взаимная сертификация - PullRequest
       28

TLS Взаимная сертификация

0 голосов
/ 27 сентября 2018

Я использую отличный пример, написанный Амлендрой на странице: https://aticleworld.com/ssl-server-client-using-openssl-in-c/ односторонняя аутентификация работает нормально.

Затем я изменил код клиента, чтобы загрузить сертификат клиента, добавив следующеелинии на главную сразу после вызова функции SSL_new (ctx);

/* set the local certificate from CertFile */
if ( SSL_CTX_use_certificate_file(ctx, CertFile, SSL_FILETYPE_PEM) <= 0 )
{
    ERR_print_errors_fp(stderr);
    abort();
}
/* set the private key from KeyFile (may be the same as CertFile) */
if ( SSL_CTX_use_PrivateKey_file(ctx, KeyFile, SSL_FILETYPE_PEM) <= 0 )
{
    ERR_print_errors_fp(stderr);
    abort();
}
/* verify private key */
if ( !SSL_CTX_check_private_key(ctx) )
{
    fprintf(stderr, "Private key does not match the public certificate\n");
    abort();
}

На стороне сервера я вызвал следующую функцию:

SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL);

На стороне сервера:он сказал, что нет сертификации прибыл от клиента.Любое предложение, почему клиент не отправляет сертификацию на стороне сервера?

...