↑ ↓ auswählen, Enter öffnen, Esc schließen

SSL und Zertifikate

Zertifikate prüfen, Ablaufdaten auslesen, Ketten testen und Let's Encrypt erneuern. HTTPS ist Pflicht, auch für das Ranking.

17 Einzeiler: 13 harmlos, 4 vorsicht, 0 destruktiv

Ablaufdatum des SSL-Zertifikats einer Website prüfen

$openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates
harmlos

Ablaufdatum und Inhaber einer Zertifikatsdatei anzeigen

#openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -subject -issuer -enddate
harmlos

Alle certbot-Zertifikate mit Domains und Ablaufdatum anzeigen

#certbot certificates
harmlos

Alle Domains eines Zertifikats auslesen (SAN)

$openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -ext subjectAltName
harmlos

Ausgelieferte Zertifikatskette eines Servers anzeigen

$openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | grep -E "^ *([0-9]+ s:|i:)"
harmlos

Erneuerung aller Let's-Encrypt-Zertifikate testen (certbot)

#certbot renew --dry-run
harmlos

Inhalt einer CSR vor dem Einreichen prüfen

$openssl req -in example.com.csr -noout -text -verify
harmlos

PFX-Datei in PEM mit Zertifikat und Schlüssel umwandeln

$openssl pkcs12 -in example.com.pfx -out example.com.pem -nodes
vorsicht

Privaten Schlüssel und CSR mit mehreren Domains erzeugen

$openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
vorsicht

Prüfen, ob das Zertifikat einer Website als vertrauenswürdig gilt

$openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com </dev/null 2>/dev/null | grep "Verify return code"
harmlos

Prüfen, ob ein Server TLS 1.3 unterstützt

$openssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null 2>/dev/null | grep -E "^New,|Protocol *:"
harmlos

Prüfen, ob ein Zertifikat in den nächsten Tagen abläuft

#openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -checkend $(( 30 * 86400 )) && echo "noch gültig" || echo "läuft bald ab"
harmlos

Prüfen, ob eine Website den HSTS-Header sendet

$curl -sI https://example.com/ | grep -i "^strict-transport-security"
harmlos

Prüfen, ob privater Schlüssel und Zertifikat zusammenpassen

#openssl x509 -noout -modulus -in /etc/ssl/certs/example.com.crt | openssl md5 && openssl rsa -noout -modulus -in /etc/ssl/private/example.com.key | openssl md5
harmlos

Selbstsigniertes Zertifikat für Tests erzeugen

$openssl req -x509 -newkey rsa:2048 -nodes -days 365 -keyout test.key -out test.crt -subj "/CN=test.example.com" -addext "subjectAltName=DNS:test.example.com"
vorsicht

SHA-256-Fingerabdruck eines Zertifikats anzeigen

$openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256
harmlos

Zertifikat und Schlüssel von PEM in PFX umwandeln

$openssl pkcs12 -export -out example.com.pfx -inkey example.com.key -in example.com.crt -certfile chain.pem
vorsicht

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.