Essayez gossl qui permet de spécifier la date de début et la durée de validité du certificat dans différentes unités de temps.
Je l'ai développé pour surmonter les limitations de la ligne de commande openssl. L'outil est léger, implémenté en Go, sans dépendances, sous licence MIT.
Les options -startdate et -enddate de la commande x509 sont des options d'affichage. Vous pouvez définir une heure de début et de fin spécifique à l'aide de la commande ca à la place pour signer le certificat.
Essayez quelque chose comme ceci :
openssl ca -config /etc/openssl.cnf -policy policy_anything -out clientcert.pem -startdate 120815080000Z -enddate 120815090000Z -cert ca.pem -keyfile cakey.pem -infiles clientcert.csr
Étape 1. Installer faketime
sudo apt-get install faketime
Étape 2. Générer un certificat expiré un jour avant la date actuelle.
faketime 'last friday 5 pm' /bin/bash -c 'openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 6 -nodes'
Étape 3 Vérifier la date de validité du certificat
openssl x509 -noout -text -in cert.pem
Ou voici une autre façon que j'ai trouvé de travailler
Supposons que je souhaite que mon certificat expire dans 10 minutes à titre de test
La date actuelle est le 17 février
L'heure actuelle est 16h40
J'ai d'abord défini la date de mon système sur -1 jour :le 16 février
J'ai réglé mon horloge système sur +10 minutes :16h50
Je crée mon certificat en utilisant openssl x509
expirer dans 1 jour, ce qui signifie en réalité expirer aujourd'hui Feb 17th
openssl x509 -req -days 1 -in clientcert.csr -signkey cert.key -out ssl.crt
Je réinitialise ensuite l'horloge et l'heure de mon système à la date et à l'heure réelles et voilà, vous avez un certificat qui va expirer dans 10 minutes !
Évidemment, ce n'est pas la vraie façon de faire les choses, mais c'est agréable et facile de créer des certificats auto-signés pour les développeurs.