J'ai plusieurs certificats SSL et je voudrais être averti lorsqu'un certificat a expiré.
Mon idée est de créer un cronjob, qui exécute une commande simple tous les jours.
Je sais que la openssl
commande sous Linux peut être utilisée pour afficher les informations de certificat du serveur distant, c'est-à-dire:
openssl s_client -connect www.google.com:443
Mais je ne vois pas la date d'expiration dans cette sortie. De plus, je dois terminer cette commande avec CTRL+ c.
Comment puis-je vérifier l'expiration d'un certificat distant à partir d'un script (en utilisant de préférence openssl
) et le faire en "mode batch" afin qu'il s'exécute automatiquement sans interaction avec l'utilisateur?
-servername www.google.com
du serveur avec pour les serveurs compatibles SNI Pour éviter la nécessité d'une terminaison, envoyez / dev / null à lui< /dev/null
Réponses:
Votre commande attendrait maintenant une requête http comme
GET index.php
par exemple. Utilisez-le à la place:true
: ne donnera juste aucune entrée suivie de eof, de sorte que openssl se ferme après la connexion.openssl ...
: la commande de votre question2>/dev/null
: la sortie d'erreur sera ignorée.openssl x509
: active la gestion des données de certificats X.509.-noout
: Supprime toute la sortie du certificat-checkend 0
: vérifier si le certificat a expiré dans les 0 secondes suivantesla source
-checkend
tellement plus facile que le script que j'avais trouvé qui faisait de l'arithmétique des dates!Il vous obtient le certificat, mais il ne le décode pas. Puisque cela serait nécessaire si vous voulez la date, vous ne la voyez pas. Donc, ce qu'il faut, c'est que vous le canalisiez dans l'
x509
application d' OpenSSL pour décoder le certificat:Cela vous donnera le certificat décodé complet sur stdout, y compris ses dates de validité.
la source
Si vous devez vérifier la date d'expiration, grâce à cet article de blog , vous avez trouvé un moyen de trouver ces informations avec d'autres informations pertinentes en un seul appel:
La sortie comprend l'émetteur, le sujet (à qui le certificat est délivré), la date d'émission et enfin la date d'expiration :
la source