OpenSSL unter Windows: Probleme beim Signieren einer Datei über die Befehlszeile

OpenSSL unter Windows: Probleme beim Signieren einer Datei über die Befehlszeile

Ich muss eine XML-Datei mit OpenSSL auf einem Windows-Server 2012 über die Befehlszeile signieren.

Leider hat es nicht geklappt, wenn ich die Passphrase im Befehl gesetzt habe. Ich bekomme dann immer die Fehlermeldung: "Kann nur eine Datei signieren oder verifizieren"

Wenn ich die Befehlszeile ohne die Passphrase-Option verwende, scheint es zu funktionieren, da es dann nach der Passphrase fragt und bei Eingabe eine Sig-Datei erstellt.

Leider möchte ich den Befehl in einem automatisierten Skript verwenden, daher muss ich die Passphrase über die Befehlszeile übergeben.

Mit folgenden Zeilen versucht:

Ohne Passphrase-Option (funktioniert einwandfrei):

C:\OpenSSL-Win64\bin\openssl.exe dgst -sha512 -binary -out "D:\BZSt\CRS\m5_cs_bz101481661_1013801661_test00000001.xml.sig" -sign "D:\BZSt\CRS\SFTP-Keys\FinDK_elster_2048.pem" "D:\BZSt\CRS\m5_cs_bz101481661_1013801661_test00000001.xml"

Mit Passphrase-Option (Funktioniert nicht / Hinweis: Das Passwort ist in einer TXT-Datei gespeichert, da es Sonderzeichen enthält und das Maskieren des Passworts durch Anführungszeichen nicht funktioniert hat):

C:\OpenSSL-Win64\bin\openssl.exe dgst -sha512 -binary -out "D:\BZSt\CRS\m5_cs_bz101481661_1013801661_test00000001.xml.sig" -sign "D:\BZSt\CRS\SFTP-Keys\FinDK_elster_2048.pem" "D:\BZSt\CRS\m5_cs_bz101481661_1013801661_test00000001.xml" -pass file:"D:\BZSt\CRS\SFTP-Keys\BZSt-Passphrase.txt"

Vielleicht habe ich irgendwo eine falsche Syntax. Für jede Hilfe wäre ich dankbar.

Beste grüße,

P. Baeumel

Antwort1

Überprüfen Sie die Manpage füropenssl-dgst(v1.0.2, aber auch gültig für andere, weniger aktuelle Versionen) zeigt, dass das korrekte Argument für ein Passphrase-Argument lautet-passin, nicht -pass.

Da das Argument -passnicht als Optionsschalter erkannt wird und der/die letzte(n) Parameter des Befehls „dgst“ den Dateinamen angeben, wird davon ausgegangen, dass Sie drei Dateinamen angeben: Die Datei, an der Sie interessiert sind, eine Datei mit dem Namen -passund eine Datei mit dem Namen file:D:\...... Daher die Fehlermeldung, die Sie erhalten.

verwandte Informationen