Comment faire pour déterminer le protocole SSL cert de la date d'expiration d'un PEM certificat codé?
Si j'ai le fichier, et un shell Bash sous Mac ou Linux, comment puis-je interroger le fichier cert pour la date d'expiration? Pas un site web, mais en fait le fichier de certificat lui-même, en supposant que j'ai la rse, clé, pem et de la chaîne des fichiers.
Vous devez vous connecter pour publier un commentaire.
Avec
openssl
:La sortie est sur la forme:
Voir aussi MikeW réponse pour savoir comment vérifier facilement si le certificat a expiré ou n'est pas, ou si elle sera à l'intérieur d'une certaine période de temps, sans avoir à analyser la date ci-dessus.
-startdate
et-enddate
options intégrées dans lex509
utilitaire. Ils vous permettront d'économiser de l'grep
.Si vous voulez simplement savoir si le certificat a expiré (ou vont le faire dans les N secondes), le
-checkend <seconds>
option pouropenssl x509
va vous dire:Cela évite d'avoir à faire date/heure des comparaisons de vous-même.
openssl
retourne un code de sortie de0
(zéro) si le certificat n'a pas expiré et ne le sera pas pour la prochaine 86400 secondes dans l'exemple ci-dessus. Si le certificat est expiré ou a déjà fait - ou de quelque autre erreur comme un invalide/fichier inexistant - le code de retour est1
.(Bien sûr, il suppose que la date/l'heure est correctement réglée)
-noout
option pour voir un message utile à l'aide d'une seule commande sans supplément de la logique. E. g.,openssl x509 -checkend 0 -in file.pem
donnera le résultat "Certificat expire" ou "Certificat n'expirera pas" indiquant si le certificat expire à zéro des secondes.Voici ma ligne de commande bash à la liste de plusieurs certificats dans l'ordre de leur expiration, plus récemment, qui expire en premier.
Exemple de sortie:
0 7 * * 1 /path/to/cert.sh | mail -s "certbot" [email protected]
Voici un bash fonction qui vérifie l'ensemble de vos serveurs, en supposant que vous êtes à l'aide de DNS round-robin. À noter que cela nécessite GNU date et ne fonctionne pas sur Mac OS
Exemple de sortie:
Pour MAC OSX (El Capitan) Cette modification de Nicholas' exemple a travaillé pour moi.
Exemple De Sortie:
macOS n'a pas, comme le
--date=
ou--iso-8601
drapeaux sur mon système..cer
certs, vous venez de faire et téléchargé à partir de l'Apple Dev site?Une ligne de la vérification sur le vrai/faux si cert a expiré en peu de temps plus tard(ex. 15 jours):
Si (pour quelque raison) que vous souhaitez utiliser une application graphique sous Linux, utilisez
gcr-viewer
(dans la plupart des distributions, il est installé par le paquetgcr
(sinon dans le paquetgcr-viewer
))