2017-07-04 6 views
0

J'ai l'obligation d'informer les clients que leur certificat expirera dans quelques jours. Il est donc recommandé de renouveler le cryptage TLS avant son utilisation.Récupérer l'heure d'expiration des certificats au format PEM

Comment puis-je récupérer l'heure d'expiration des certificats au format PEM?

+1

double possible de [Comment déterminer la date d'expiration SSL cert de un certificat encodé PEM?] (https://stackoverflow.com/questions/21297853/how-to-determine-ssl-cert-expiration-date-from-a-pem-encoded-certificate) – beny23

Répondre

1
#if FROMFILE 
BIO* bio = BIO_new_file(filename, "rb"); 
if (bio == null) goto err; 
#else 
BIO* bio = BIO_new(BIO_s_mem()); 
BIO_write(bio, data, dataLen); 
#endif 

X509* x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL); 
if (x509 == null) goto err; 

#if OPENSSL_11 
ASN1_TIME* notBefore = X509_get0_notBefore(x509); 
#else 
ASN1_TIME* notBefore = x509->validity->notBefore; 
#endif 

// Choose a time representation and convert the ASN1_TIME to it. 

goto cleanup; 

err: 
// Exercise left to the reader. 

cleanup: 
// Don't free notBefore, since it was obtained via a get0 or interior pointer. 
if (x509) X509_free(x509); 
if (bio) BIO_free(bio);