Durée de validité restante du certificat LE

Salut!
Je souhaiterai afficher la durée restante de la validité de mon certificat Letsencrypt sur mon dashboard. Une idée de comment m’y prendre?
Merci!

1 « J'aime »

Bonjour , une piste :

J’utilise un Shell avec cette ligne de commande
ssl-cert-check -c /etc/letsencrypt/live/mon.domaine.com/fullchain.pem | grep FILE | awk {'print $4" "$3" "$5" Soit "$6" jours" '}

En bricolant quelque chose avec script et virtuel, on doit être capable d’afficher dur le Dashboard

1 « J'aime »

Salut,

Pour ma part, je renseigne la commande perso1 du plugin monitoring qui me donne la date de fin de validité:

echo | openssl s_client -servername urlJeedom -connect urlJeedom:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates | grep notAfter | sed ‹ s/notAfter=/SSL : / › | awk -v FS=’[ ]’ -v OFS=’ ’ ‹ {print "SSL : "$2, $5, $4, $3, $6} ›

Ce qui donne une date du genre (à adapter selon besoin) :
SSL : : 10:10:00 10 Nov 2019

1 « J'aime »

Merci a tous les 2,
Les 2 commandes fonctionnent nickel en SSH mais je galere pour integrer ca a Jeedom… J’ai tenté un script dans un scenario, la commande perso1 du plugin monitoring, le plugin script… Je ne parviens pas a lire le resultat directement depuis Jeedom… Une piste a me fournir?

Salut,
Je me réponds moi-même: le problème était tout bête (comme d’habitude), une histoire de droits d’accès… En ajoutant simplement un SUDO devant les expressions proposées, ça fonctionne nickel! Merci pour votre aide!

Sinon via une API, on peut récupérer un beau JSON.

https://api.certspotter.com/v1/issuances?domain=mondomaine.fr

https://sslmate.com/certspotter/

https://www.ssi.gouv.fr/agence/publication/certificate-transparency-des-journaux-public-en-ajout-seul-pour-ameliorer-la-securite-de-tls/

C’est pas mal ca, je ne connaissais pas… Petite question du coup, pourquoi est-ce que je vois 2 certificats alors que j’ai un seul nom de domaine?

{
	"id":"1077317855",
	"tbs_sha256":"b6f314b7273097bfdb2a155bc2fc4df89464b03dbc4cxxxxxxxxxxxxxx",
	"pubkey_sha256":"287da97c61f310c37346614ea9c2599eb11a400675xxxxxxxxxxxxxx",
	"not_before":"2019-08-17T18:37:48-00:00",
	"not_after":"2019-11-15T18:37:48-00:00"
},
{
	"id":"1209543702",
	"tbs_sha256":"f6d5d83509557592b5a246d8a2a74bb7538955b6415bb1xxxxxxxxxxxxxxxxxxxx",
	"pubkey_sha256":"492ff41a296a76190e3f62cb1feb446dbcf44aa223e4fxxxxxxxxxxxxxxxxxxx",
	"not_before":"2019-10-27T21:33:22-00:00",
	"not_after":"2020-01-25T21:33:22-00:00"
}

Ton certificat a du être renouvelé le 17/08 puis le 27/10.
Celui du 17/08 étant encore valable, il apparaît dans le JSON.

Pour une réponse plus complète.

https://api.certspotter.com/v1/issuances?domain=mondomaine.fr&include_subdomains=true&expand=dns_names&expand=issuer&expand=cert

Avant que ce sujet soit fermé, je laisse un bout de code.

$monDomain = 'mondomaine.fr';
$apiCertspotter = 'https://api.certspotter.com/v1/issuances?domain=';

$api = $apiCertspotter . $monDomain;
$json = file_get_contents($api);
if ($json=="") {
  $date = 'Site injoignable';
} else {
  $scenario->setLog($json);
  $jsonData = json_decode($json,true);
  $c = count($jsonData);
  $scenario->setLog('Nb de certificat : ' . $c);
  if ($c>0) {
    $dateAfter = $jsonData[$c-1]["not_after"];
    $date = date('d/m/Y à H:i:s',strtotime($dateAfter));
  } else {
    $date = 'Pas de certificat';
  }
}
$scenario->setLog('Résultat : ' . $date);
1 « J'aime »

Où faut-il coller ton code?

C’est à mettre dans un bloc code de scénario.
Mais ce n’est qu’un bout de code dont le résultat n’apparaitra que dans les logs du scénario.
Il faut le compléter pour que le résultat soit mis dans un virtuel.

1 « J'aime »