CA.sh
von OpenSSL nutzen.
Es passiert folgendes:
openssl genrsa -des3 -out ca.key 1024
Die Datei ca.key
gut aufheben und das Geheimnis (pass-phrase) gut merken.
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
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