|
|
| (31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| '''openssl''' - Kurzbeschreibung | | '''OpenSSL/Befehl''' |
|
| |
|
| === Zufallszahl erzeugen === | | == Beschreibung == |
| $ '''openssl rand -base64 16'''
| |
| Zcc/wH0SQ7/WLvkuHq1Cjg==
| |
|
| |
|
| $ '''openssl rand -hex 16'''
| | == Installation == |
| 1f8969db2bcbb7c794a97faccd29bf61
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| | </syntaxhighlight> |
|
| |
|
| {| class="wikitable sortable options" | | == Aufruf == |
| |-
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| ! Option !! Aufgabe
| | </syntaxhighlight> |
| |-
| | |
| | '''rand''' || Pseudozufallszeichenketten einer bestimmten Kodierung und der angegebenen Länge erzeugt werden
| | === Optionen === |
| |-
| | {| class="wikitable sortable options gnu big" |
| | '''-base64''' || Zeichenkette aus Zahlen, Groß- & Kleinbuchstaben, sowie den Zeichen '+' und '/' generiert
| | |- |
| |-
| | ! Unix !! GNU !! Parameter !! Beschreibung |
| | '''-hex''' || Zeichenkette aus Hexadezimalzahlen
| | |- |
| | | || || || |
| | |- |
| |} | | |} |
|
| |
|
| === Verfügbare Algorithmen === | | === Parameter === |
| $ '''openssl ciphers'''
| | === Umgebungsvariablen === |
| 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
| | === Exit-Status === |
| | | {| class="wikitable options col1center big" |
| === Dateien === | | |- |
| === Verschlüsseln === | | ! Wert !! Beschreibung |
| ; Syntax
| | |- |
| openssl enc <Algorithmus> -in <zu verschlüsselnde Datei> -out <Dateiname für verschlüsselte Datei>
| | | 0 || Erfolg |
| | | |- |
| ; Beispiel
| | | >0 || Fehler |
| 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
| | == Anwendung == |
| $ '''openssl rsa -in server.pem -out server.key'''
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| | </syntaxhighlight> |
|
| |
|
| ; Selbst-signiertes Zertifikat erzeugen
| | === Problembehebung === |
| $ '''openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 999'''
| |
| | |
| === Fehlerbehebung === | |
|
| |
|
| == Konfiguration == | | == Konfiguration == |
| === Dateien === | | === Dateien === |
| | {| class="wikitable options big" |
| | |- |
| | ! Datei !! Beschreibung |
| | |- |
| | | || |
| | |- |
| | | || |
| | |} |
| | |
| <noinclude> | | <noinclude> |
|
| |
|
| == Anhang == | | == Anhang == |
| === Siehe auch === | | === Siehe auch === |
| {{Special:PrefixIndex/{{BASEPAGENAME}}}} | | <div style="column-count:2"> |
| ==== Sicherheit ====
| | <categorytree hideroot=on mode="pages">{{OpenSSL}}</categorytree> |
| ==== Dokumentation ====
| | </div> |
| ===== RFC =====
| | ---- |
| {| class="wikitable sortable options"
| | {{Special:PrefixIndex/OpenSSL}} |
| |-
| | |
| ! RFC !! Titel
| | === Dokumentation === |
| |-
| | ; Man-Page |
| | [https://www.rfc-editor.org/rfc/0000 0000] ||
| | # [https://manpages.debian.org/trixie/openssl/openssl.1ssl.en.html openssl (1ssl)] |
| |}
| |
|
| |
|
| ===== Man-Pages =====
| | <!-- |
| ===== Info-Pages =====
| | ; Info-Pages |
| ==== Links ====
| | --> |
| ===== Projekt =====
| |
| ===== Weblinks =====
| |
|
| |
|
| | === Links === |
| | ==== Projekt ==== |
| | ==== Weblinks ==== |
|
| |
|
| {{DISPLAYTITLE:openssl}} | | {{DISPLAYTITLE:OpenSSL/Befehl}} |
| {{DEFAULTSORT:openssl}} | | {{DEFAULTSORT:OpenSSL/Befehl}} |
|
| |
|
| | [[Kategorie:OpenSSL]] |
| [[Kategorie:Linux/Befehl]] | | [[Kategorie:Linux/Befehl]] |
| [[Kategorie:OpenSSL]]
| | |
| </noinclude> | | </noinclude> |