Je suis débutant. J'ai un problème lors de l'utilisation de SSL. Je trouve un code c sur internet. dans le code serveur, une fonction de suivi: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");
}
quand on utilise la commande suivante: openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout mycert.pem -out mycert.pem et exécuter ./sslserver .o 443 puis je cours ./client localhost 443. erreur de serveur: "Aucun certificat.". Je pense que la raison SSL_get_peer_certificate (ssl) renvoie null mais je ne sais pas comment le réparer. Pouvez-vous aider? Code complet:
Près de dupe de (et ressemble au même code que) http://stackoverflow.com/questions/40708532/how-to-load-cerient-certificate-during-ssl-connection-for-mutual-authentication –