Openssl

Aus xinux.net
Zur Navigation springen Zur Suche springen

Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)


Prinzip

Signieren

Wenn man einen Webserver hat und will diesen nun verschlüsselt betreiben generiert man ein Schlüsselpaar einen privkey-s und einen pubkey-s. Den Pubkey-s schickt man nun an einen Zertifizerungsstelle,  diese bildet nun einen Hashwert hash-s (der einfachste Hash ist eine Quersumme wie in der Schule). dieser hash wird nun mit dem privkey-ca verschlüsselt, das Teil nennt man nun signature-s diese wird an den pubkey-s angehängt, man nennt dies nun certifkat-s und es wird zum Server zurück geschickt ...

man baut dies dann in seinen Websever ein ... fertig

Signierung.jpg

Authentifzieren

Wenn nun ein client auf den Webserver zugreift macht er eine Anfrage ... der Server schickt nun das certifikat-s zum Client ... der teilt nun dieses wieder auf in pubkey-s und signature-s und bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifzierungstelle. nennen wir diesen mal X ... so und nun kommst: die signature-s haben wir bekommen als in der zertifizierungstelle den hash-s mit dem privkey-ca verschlüsselt haben ... wenn wir nun die signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s denn wir nun Y nennen ...

wenn X = Y ist die authentifzierung erfolgreich ...

Auth.jpg

Erstellen eines Privat Keys

openssl genrsa -passout pass:$<variable> -aes256 -out <client.key> 1024
-aes256 : Verschlüsselung des Private Keys mit aes256 (optional)
-passout pass:$<variable> : Passwort für Private Key steht in $<variable> (optional)
-out ... : Outputdatei
1024 : Schlüssellänge in bit


Erstellen einer CSR (Certificate Signing Request):

openssl req -passin env:$<variable> -new -key <Private Key> -out <client csr> -config <config-file>
-passin env:$<variable> : Passwort für Privat Key (optional)
-new : Neue CSR
-key ... : Privat Key
-config : Konfigurationsdatei für openssl (optional)


CSR mit eigenem Key signieren (CA-Zertifikat erstellen):

openssl x509 -passin env:$<variable> -days <3650> -extfile <filename> -signkey <Private Key>
-days : Gültigkeitsdauer
-extfile : Datei mit Zertifikat-extensions (optional)
-signkey : Privater Key mit dem Signiert wird


Erstellen eines Zertifikates (Unterscheidet sich nur im signieren)

openssl x509 -days <3650> -CAserial <serial-file> -CA <ca-zertifikat> -CAkey <Private Key der CA> -in <client.CSR> -req -out <client.crt>
-CAserial ... : Serial-File der CA
-CA ... : Zertifikat der CA
-CAkey ... : Privat Key der CA
-in ... : Inputdatei
-req : Gibt an, dass der Input eine DSR ist 


Überprüfung der Gültigkeit eines Zertifikates:

openssl verify -CAfile <ca-zertifikat> <ausgestelletes Zertifikat>


Auslesen des Subjects und Serial-Nr.:

openssl x509 -noout -subject -serial -in <zertifikat>
-noout : Ausgabe auf den Schirm nicht in Datei
-subject : Ausgabe des Subject
-serial : Ausgabe der Serien-Nr.

Zurückrufen (revoke) eines Zertifikates:

openssl ca -config <Konfigurationsdatei> -revoke <Zertifikat>

Request signieren:

openssl ca -notext -in request.req -out signiert.pem

Erstellen einer CRL (Certificate Revoke Liste):

openssl ca -config <Konfigurationsdatei> -gencrl -out <CRL-file>


Umwandeln der CRL ins DER-Format (Notwendig zum Importieren):

openssl crl -inform PEM -outform DER -in <CRL-File> -out <CRL-File im DER-Format>


Aufbau einer SSL Verbindung mit einem Server:

openssl s_client -connect <server>:<Port>


Starten eines SSL-Servers

openssl s_server -CAfile <Zertifikat> -key <Privat key der CA> -cert <Zertifikat des Servers> -accept <Port> -WWW
-WWW : Emuliert einen einfachen Web-server auf angeegenen Port

P12 = PFX

Umwandlung von pem in PKCS12 Format

openssl pkcs12 -export -in cert.pem -inkey key.pem -out cred.p12
Enter Export Password:
Verifying - Enter Export Password:

Links