|
|
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''openssl''' - Kurzbeschreibung | | '''openssl''' - Kurzbeschreibung |
|
| |
|
| === Zufallszahl erzeugen === | | == Anwendungen == |
| $ '''openssl rand -base64 16'''
| | [[Openssl/Anwendungen]] |
| Zcc/wH0SQ7/WLvkuHq1Cjg==
| |
| | |
| $ '''openssl rand -hex 16'''
| |
| 1f8969db2bcbb7c794a97faccd29bf61
| |
| | |
| {| class="wikitable sortable options"
| |
| |-
| |
| ! 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
| |
| | |
| === Entschlüssel ===
| |
| ; 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 <tt>-d</tt> 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 <tt>rsautl</tt>.
| |
| | |
| Eine weitere sinnvolle Option ist z. B. noch <tt>-a</tt>, 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 <code>server.crt</code> noch <code>server.key</code> 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 ===
| |
| <noinclude>
| |
|
| |
|
| == Anhang == | | == Anhang == |
| === Siehe auch === | | === Siehe auch === |
| {{Special:PrefixIndex/{{BASEPAGENAME}}}} | | {{Special:PrefixIndex/{{BASEPAGENAME}}}} |
| ==== Sicherheit ====
| |
| ==== Dokumentation ====
| |
| ===== RFC =====
| |
| {| class="wikitable sortable options"
| |
| |-
| |
| ! RFC !! Titel
| |
| |-
| |
| | [https://www.rfc-editor.org/rfc/0000 0000] ||
| |
| |}
| |
|
| |
| ===== Man-Pages =====
| |
| ===== Info-Pages =====
| |
| ==== Links ====
| |
| ===== Projekt =====
| |
| ===== Weblinks =====
| |
|
| |
|
| |
|
| {{DISPLAYTITLE:openssl}} | | {{DISPLAYTITLE:openssl}} |
openssl - Kurzbeschreibung
Anwendungen
Openssl/Anwendungen
Anhang
Siehe auch