Nützliche openssl Befehle

Bestehenden CSR (Certificate Signing Request) anschauen

openssl req -noout -text -in server.csr

CSR erstellen

openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr

CSR ansehen

openssl req -noout -text -in server.csr

Client Zertifikat ansehen

openssl x509 -in client.crt -noout -text

Zertifikatskette überprüfen

openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt ./file.crt
./file.crt: OU = Go to https://www.thawte.com/repository/index.html, OU = Thawte SSL123 certificate, OU = Domain Validated, CN = domain.de
error 20 at 0 depth lookup:unable to get local issuer certificate
openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt -untrusted ./domain_ca.crt ./file.crt
./file.crt: OK

Passt ein Zertifikat zu einem Key?

openssl x509 -noout -modulus -in diskette.debian-hell.org.crt | openssl md5
baa75012877490f93f114130c0a01547
openssl rsa -noout -modulus -in diskette.debian-hell.org.key | openssl md5
baa75012877490f93f114130c0a01547

Ablaufdatum eines Zertifikats per CLI ermitteln

user@box:~$ openssl s_client -connect home.debian-hell.org:443 | openssl x509 -noout -enddate
depth=1 /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
notAfter=Mar 21 10:41:36 2014 GMT

Von der CA bis zum self signed Zertifikat

Anlegen der CA:

# -des3 versieht den Key mit einem Passwort
openssl genrsa -des3 -out ca.key 4096
# 10 Jahre Laufzeit (3650 Tage)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

CSR erstellen:

# -des3 versieht den Key mit einem Passwort
openssl genrsa -des3 -out fu.debian-hell.org.key 4096
openssl req -new -key fu.debian-hell.org.key -out fu.debian-hell.org.csr

Zertifikat mit der CA signieren:

openssl x509 -req -days 3650 -in fu.debian-hell.org.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out fu.debian-hell.org.crt