Я новичок. У меня проблема при использовании SSL. Я нахожу код c в Интернете. в коде сервера, имеют функцию последующей:SSL_get_peer_certificate (ssl) return NULL?
void ShowCerts(SSL* ssl)
{ X509 *cert;
char *line;
cert = SSL_get_peer_certificate(ssl); /* Get certificates (if available) */
if (cert != NULL)
{
printf("Server certificates:\n");
line = X509_NAME_oneline(X509_get_subject_name(cert), 0, 0);
printf("Subject: %s\n", line);
free(line);
line = X509_NAME_oneline(X509_get_issuer_name(cert), 0, 0);
printf("Issuer: %s\n", line);
free(line);
X509_free(cert);
}
else
printf("No certificates.\n");
}
, когда я использую команду: OpenSSL REQ -x509 -nodes -days 365 -newkey RSA: 1024 -keyout mycert.pem отъезда mycert.pem и запустить ./sslserver .o 443, а затем я запустил ./client localhost 443. ошибка сервера: «Нет сертификатов». Я думаю, что причина SSL_get_peer_certificate (ssl) возвращает значение null, но я не знаю, как это исправить. Вы можете помочь? Полный код: http://simplestcodings.blogspot.com/2010/08/secure-server-client-using-openssl-in-c.html
Повреждение (и похоже на тот же код) http://stackoverflow.com/questions/40708532/how-to-load-client-certificate-during-ssl-connection-for-mutual-authentication –