Openssl/Befehl: Unterschied zwischen den Versionen
Zeile 94: | Zeile 94: | ||
; Selbst-signiertes Zertifikat erzeugen | ; Selbst-signiertes Zertifikat erzeugen | ||
$ '''openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 999''' | $ '''openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 999''' | ||
=== Fehlerbehebung === | === Fehlerbehebung === |
Version vom 6. Mai 2024, 18:26 Uhr
openssl - Kurzbeschreibung
Zufallszahl erzeugen
- Schlüssel (keys) erstellen
$ openssl rand -base64 16 Zcc/wH0SQ7/WLvkuHq1Cjg==
$ openssl rand -hex 16 1f8969db2bcbb7c794a97faccd29bf61
Option | Aufgabe |
---|---|
rand | Pseudozufallszeichenketten einer bestimmten Kodierung und der angegebenen Länge erzeugt werden |
-base64 | Zeichenkette aus Zahlen, Groß- & Kleinbuchstaben, sowie den Zeichen '+' und '/' generiert |
-hex | Zeichenkette aus Hexadezimalzahlen |
Verfügbare Algorithmen
$ openssl ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:RSA-PSK-AES256-GCM-SHA384:DHE-PSK-AES256-GCM-SHA384:RSA-PSK-CHACHA20-POLY1305:DHE-PSK-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:AES256-GCM-SHA384:PSK-AES256-GCM-SHA384:PSK-CHACHA20-POLY1305:RSA-PSK-AES128-GCM-SHA256:DHE-PSK-AES128-GCM-SHA256:AES128-GCM-SHA256:PSK-AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:ECDHE-PSK-AES256-CBC-SHA384:ECDHE-PSK-AES256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:SRP-AES-256-CBC-SHA:RSA-PSK-AES256-CBC-SHA384:DHE-PSK-AES256-CBC-SHA384:RSA-PSK-AES256-CBC-SHA:DHE-PSK-AES256-CBC-SHA:AES256-SHA:PSK-AES256-CBC-SHA384:PSK-AES256-CBC-SHA:ECDHE-PSK-AES128-CBC-SHA256:ECDHE-PSK-AES128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:SRP-AES-128-CBC-SHA:RSA-PSK-AES128-CBC-SHA256:DHE-PSK-AES128-CBC-SHA256:RSA-PSK-AES128-CBC-SHA:DHE-PSK-AES128-CBC-SHA:AES128-SHA:PSK-AES128-CBC-SHA256:PSK-AES128-CBC-SHA
Dateien verschlüsseln
- Syntax
openssl enc <Algorithmus> -in <zu verschlüsselnde Datei> -out <Dateiname für verschlüsselte Datei>
- Beispiel
openssl enc -aes-256-cbc -in secret.txt -out secret.txt.enc
Dateien entschlüsseln
- Syntax
openssl enc <Algorithmus> -d -in <zu entschlüsselnde Datei> -out <Dateiname für entschlüsselte Datei>
Im Grunde handelt es sich um den gleichen Befehl wie bei der Verschlüsselung, nur dass hierbei noch die Option -d für decryption hinzugefügt wird.
- Hinweis
-
- Hierbei ist es auch möglich, für die Kryptografie eigene Keys zu verwenden.
- Das entsprechende Schlüsselwort lautet hierbei rsautl.
Eine weitere sinnvolle Option ist z. B. noch -a, welche die verschlüsselten Daten in der Datei noch base64 kodiert.
$ cat secret.txt.enc U2FsdGVkX18vM/gClOw34NJQday0+By5Ztpd2HKvbVK3D4ccDk3qrbaGZo065h7b
Hier helfen zwei kleine Skripte. Diese können z. B. als ssl-encode.sh und ssl-decode.sh gespeichert werden. Dazu bieten sich die Ordner ~/bin (für einen einzelnen Benutzer) oder /usr/local/bin (bei systemweiter Nutzung) an.
- Verschlüsseln
#!/bin/bash # make sure we get a file name if [ $# -lt 1 ]; then echo "Usage: $0 filename" exit 1 fi openssl enc -e -aes256 -in "$1" -out "$1".enc
- Entschlüsseln
#!/bin/bash # make sure we get 2 files if [ $# -lt 2 ]; then echo "Usage: $0 encrypted_file decrypted_file" exit 1 fi
openssl enc -d -aes256 -in "$1" -out "$2"
- openssl benutzt ab Version 1.1 (?) nicht mehr -md md5 als Default-Option, ohne diese Option kann eine mit
- Version 1.0 verschlüsselte Datei nicht entschlüsselt werden.
Selbst signierte Zertifikate
SSL-Zertifkat selbst erstellen/erzeugen/signieren
- Erstellung eines SSL-Zertifikats
- Erstellen einer Zertifikats-Anforderung (certificate (signing) request, csr)
- Privaten Key erzeugen
- Signieren des Keys mit der Zertifikats-Anforderung
- Alle Schritte in einem Befehl
openssl req -new -days 999 -newkey rsa:4096bits -sha512 -x509 -nodes -out server.crt -keyout server.key
- Hinweise
-
- die Gültigkeitsdauer sollte ggf. von 999 Tagen auf einen anderen Wert geändert werden
- achten Sie darauf, dass weder
server.crt
nochserver.key
im aktuellen Verzeichnis existieren, oder diese werden überschrieben!
Details
- Privaten Key und CSR erzeugen
$ openssl req -new -keyout server.pem > server.csr
- Privaten Key in passendes Format umwandeln
$ openssl rsa -in server.pem -out server.key
- Selbst-signiertes Zertifikat erzeugen
$ openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 999
Fehlerbehebung
Konfiguration
Dateien
Anhang
Siehe auch
Sicherheit
Dokumentation
RFC
RFC | Titel |
---|---|
0000 |