
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 -pass
nicht 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 -pass
und eine Datei mit dem Namen file:D:\.....
. Daher die Fehlermeldung, die Sie erhalten.