Nachdem ich gestern die SSH Server nach unsicheren Key geprüft hatte, waren heute unsere SSL Server dran. Eine passende Blacklist liefert Ubuntu beim Update im Packet openssl-blacklist mit samt dem passenden Tool mit dem man ein lokales Keyfile überprüfen kann. Leider hilft das nicht bei entfernten Servern weiter und so habe ich heute ein bisschen ge-scripted um auch Remote checken zu können.

Das Script macht nichts anderes als mit dem openssl Kommando =s_client= das SSL Certificate zu extrahieren und dann dem Modulus des Pub-Key mittels SHA1 Checksumme gegen die Blacklist aus dem openssl-blacklist Paket zu prüfen:

Hier das Script:

#!/bin/sh

host=$1

if [ x$host != x ] ; then (echo HEAD / HTTP/1.0\\n\\n; sleep 1) | openssl s_client -connect $host:443 -showcerts > $host.log 2>&1 if ! grep -q "BEGIN CERT" $host.log ; then echo $host does not present a SSL Certificate else fp=`openssl x509 -noout -modulus -in $host.log | sha1sum | cut -c 21-40` cn=`openssl x509 -noout -subject -in $host.log | sed -e 's/^.*CN=\([^/]*\).*$/\1/'` if grep -q $fp /usr/share/openssl-blacklist/blacklist* ; then echo $host \($cn\) blacklisted! else echo $host \($cn\) OK fi fi else echo usage: $0 [hostname/ip] fi