Vyzkoušejte gossl, který umožňuje zadat datum začátku platnosti a trvání platnosti certifikátu v různých časových jednotkách.
Vyvinul jsem jej, abych překonal omezení příkazového řádku openssl. Nástroj je lehký, implementovaný v Go, bez závislostí, pod licencí MIT.
Volby -startdate a -enddate pro příkaz x509 jsou volby zobrazení. Místo toho můžete k podpisu certifikátu nastavit konkrétní čas začátku a konce pomocí příkazu ca.
Zkuste něco takového:
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
Krok 1. Nainstalujte si faketime
sudo apt-get install faketime
Krok 2. Vygenerujte certifikát, jehož platnost vypršela, den před aktuálním datem.
faketime 'last friday 5 pm' /bin/bash -c 'openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 6 -nodes'
Krok 3 Ověřte datum platnosti certifikátu
openssl x509 -noout -text -in cert.pem
Nebo zde je jiný způsob, jak jsem zjistil, že funguje
Řekněme, že chci, aby platnost mého certifikátu vypršela za 10 minut jako test
Aktuální datum je 17.2
Aktuální čas je 16:40
Nejprve jsem nastavil systémové datum na -1 den:16. února
Nastavil jsem systémové hodiny na +10 minut:16:50
Vytvářím svůj certifikát pomocí openssl x509
vyprší za 1 den, což ve skutečnosti znamená, že platnost vyprší dnes Feb 17th
openssl x509 -req -days 1 -in clientcert.csr -signkey cert.key -out ssl.crt
Poté resetuji své systémové hodiny a čas na skutečné datum a čas a voila máte certifikát, jehož platnost vyprší za 10 minut!
Zjevně to není skutečný způsob, jak dělat věci, ale je to příjemné a snadné pro vytváření certifikátů s vlastním podpisem pro vývojářské použití.