GNU/Linux >> Znalost Linux >  >> Linux

Jak určit datum vypršení platnosti certifikátu SSL z certifikátu kódovaného PEM?

S openssl :

openssl x509 -enddate -noout -in file.pem

Výstup je ve tvaru:

notAfter=Nov  3 22:23:50 2014 GMT

Podívejte se také na odpověď MikeW, jak snadno zkontrolovat, zda platnost certifikátu vypršela nebo ne, nebo zda se tak stane během určitého časového období, aniž byste museli analyzovat výše uvedené datum.


Pokud chcete vědět, zda platnost certifikátu vypršela (nebo tak učiní během následujících N sekund), -checkend <seconds> možnost openssl x509 vám řekne:

if openssl x509 -checkend 86400 -noout -in file.pem
then
  echo "Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi

Díky tomu nemusíte sami provádět porovnávání data a času.

openssl vrátí návratový kód 0 (nula), pokud platnost certifikátu nevypršela a nebude tak činit dalších 86 400 sekund, ve výše uvedeném příkladu. Pokud platnost certifikátu vypršela nebo už tak učinila – nebo došlo k jiné chybě, jako je neplatný/neexistující soubor – návratový kód je 1 .

(Samozřejmě předpokládá, že je správně nastaven čas/datum)

Uvědomte si, že starší verze openssl mají chybu, což znamená, že pokud je čas uvedený v checkend je příliš velký, vždy se vrátí 0 (https://github.com/openssl/openssl/issues/6180).


Zde je můj příkazový řádek bash pro seznam více certifikátů v pořadí podle jejich vypršení platnosti, přičemž poslední vyprší jako první.

for pem in /etc/ssl/certs/*.pem; do 
   printf '%s: %s\n' \
      "$(date --date="$(openssl x509 -enddate -noout -in "$pem"|cut -d= -f 2)" --iso-8601)" \
      "$pem"
done | sort

Ukázkový výstup:

2015-12-16: /etc/ssl/certs/Staat_der_Nederlanden_Root_CA.pem
2016-03-22: /etc/ssl/certs/CA_Disig.pem
2016-08-14: /etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_S.pem

Linux
  1. Jak zkontrolovat, zda je certifikát SSL SHA1 nebo SHA2 pomocí OpenSSL?

  2. Jak nainstalovat certifikát SSL v Plesku

  3. Jak získat datum vypršení platnosti uživatelského hesla z Active Directory?

  1. Jak vygenerovat klíč CSR a nainstalovat certifikát SSL z CWP?

  2. Jak použít certifikát SSL v Plesku

  3. Jak vytvořit certifikát SSL s vlastním podpisem na Ubuntu 18.04

  1. Výukový program OpenSSL:Jak fungují certifikáty SSL, soukromé klíče a CSR?

  2. Jak nainstalovat certifikát SSL na NGINX

  3. Jak určit počet týdnů v měsíci