Openssl: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
  openssl genrsa -aes256 -out ca.key 1024
 
  openssl genrsa -aes256 -out ca.key 1024
 
=== 3des ===
 
=== 3des ===
openssl genrsa -des3 -out ca.key 1024
 
  
 
== CA selbst signieren ==
 
== CA selbst signieren ==

Version vom 13. Oktober 2014, 14:57 Uhr

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

CA erstellen

aes

openssl genrsa -aes256 -out ca.key 1024

3des

CA selbst signieren

openssl req -new -key ca.key -x509 -days 3650 -out ca.crt

Erstellen eines Privat Keys

openssl genrsa -aes256 -out client.key 1024

Erstellen einer CSR (Certificate Signing Request):

openssl req -new -key client.key -out client.csr

Key signieren

openssl x509 -req -days 730 -in client.csr  -CA ca.crt  -CAkey ca.key -CAcreateserial -out client.crt

Überprüfung der Gültigkeit eines Zertifikates:

openssl verify -CAfile openvpn-ca.crt client.crt 

client.crt: OK

Anzeigen des Zertifikat

openssl x509 -noout -text -in client.crt 

Auslesen des Subjects und Serial-Nr.:

openssl x509 -noout -subject -serial -in client.crt 

subject= /C=de/ST=rlp/L=zweibruecken/O=xinux/OU=edv/CN=client/emailAddress=technik@xinux.de
serial=F5006B108B6B267B

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>

Zurückrufen (revoke) eines Zertifikates:

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

Request signieren:

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


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

Mit CA certifikat

openssl pkcs12 -export -in cert.pem -inkey key.pem -certfile ca.crt -out cred.p12

Ohne CA certifikat

openssl pkcs12 -export -in cert.pem -inkey key.pem -out cred.p12


openssl P12->PEM

Um Windows Zertifikate unter Linux/openssl verwenden zu können, müssen aus der keyfile.p12-Datei die x509 Zertifikate exportiert werden.

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -cacerts -nokeys -out root.pem -in cert.p12
openssl pkcs12 -nocerts -out private-key.pem  -in cert.p12

Jetzt können diese wieder verwendet werden.

openssl x509 -text -noout -md5 -in private-key.pem
openssl x509 -text -noout -md5 -in root.pem
openssl x509 -text -noout -md5 -in cert.pem

pkcs12 Container entpacken

Ca.crt

root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -cacerts -nomacver -nokeys -out <ca.crt> -password pass:geheim

Client.crt

root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -clcerts -nomacver -nokeys -out <client.crt> -password pass:geheim 

Client.key

root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -nocerts -nodes -nomacver -out <client.key> -password pass:geheim

Courier ssl aus eigner CA

cat hostname.key hostname.crt > /etc/courier/hostname.pem
openssl gendh >> /etc/courier/hostname.pem
/etc/init.d/courier-imap-ssl restart


Links