Left Up Right Openssl

Generieren und benutzen einer eigenen Certificate Authority (CA)

Man kann CA.sh von OpenSSL nutzen. Es passiert folgendes:
  1. Generiere privaten RSA Schlüssel (DES3 chiffiert und PEM formatiert)
    openssl genrsa -des3 -out ca.key 1024
    

    Die Datei ca.key gut aufheben und das Geheimnis (pass-phrase) gut merken.

  2. Generiere selbstsigniertes CA Zertifikat (X509 Format) für den RSA-Code (Ergebnis ist PEM-formatiert):
    openssl req -new -x509 -days 365 -key ca.key -out cacert.pem
    

    (Option -x509 macht die Selbstsignierung)

    Man kann Details dieses Zertifikats mit folgenden Kommando anschauen:

    openssl x509 -noout -text -in ca.crt
  3. Unterschreiben mit Ca-Zertificat:

    openssl x509 -req -in myreq.pem -out mycert.pem -CA cacert.pem -CAkey ca.key -CAcreateserial -days 365

Es müssen oft extension-Attribute gesetzt werden und das Subject gesetzt werden. Dies passiert über eine Konfigurationsdatei.
Diese wird beim Request generieren mit -config ext.cnf spezifiziert und beim Unterschreiben mit -extfile ext.cnf -extensions ext.cnf

RANDFILE = /dev/urandom

[ req ]
default_bits            = 1024
default_keyfile         = mycert.key
distinguished_name      =  req_distinguished_name

encrypt_key             = no
prompt                  = no

string_mask             = nombstr
x509_extensions         = x509

[ req_distinguished_name ]
countryName             = DE
localityName            = Ravensburg
0.organizationName      = Informatik- und Netzwerkverein e.V
organizationalUnitName  = CERT
emailAddress            = ssl-certificates@infnet.verein.de


[ x509 ]
basicConstraints        = CA:false
keyUsage                = digitalSignature,keyEncipherment,dataEncipherment
extendedKeyUsage        = serverAuth,clientAuth
subjectAltName          = DNS:mail.infnet.verein.de DNS:www.infnet.verein.de
    

Sei bsp.conf diese Konfiguration, dann also:

openssl req -new -config bsp.cnf -days 3650 -keyout my.key -out myreq.pem
openssl x509 -req -in myreq.pem -out mycert.pem -CA cacert.pem -CAkey ca.key -CAcreateserial -days 365 -extfile bsp.cnf -extension x509

Anwendungen:


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber