Я должен подписать XML-файл с OpenSSL на Windows-Server 2012 через командную строку.

К сожалению, это не сработало, если я установил фразу-пароль внутри команды. Я тогда всегда получаю ошибку: "Могу только подписать или подтвердить один файл"

Если я использую командную строку без опции passphrase-option, то, похоже, она будет работать, как тогда, и будет задавать вопросы для passphrase и, если введено, создаст sig-файл.

К сожалению, я хотел бы использовать команду в автоматическом сценарии, поэтому мне нужно передать фразу-пароль через командную строку.

Пробовал со следующими строками:

Без опции-фразы (работает нормально):

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"

С параметром passphrase (не работает / Примечание: пароль хранится в txt-файле, так как он содержит специальные символы и экранирование через двойные кавычки вокруг пароля не работает):

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"

Возможно, у меня где-то неправильный синтаксис. Любая помощь будет оценена.

С наилучшими пожеланиями,

П. Беумель

1 ответ1

1

Проверка справочной страницы для openssl-dgst (v1.0.2, но также и для других менее свежих версий) показывает, что правильным аргументом для аргумента парольной фразы является -passin, а не -pass .

Поскольку аргумент -pass не распознается как параметр option, а последние параметры команды dgst указывают имя файла, предполагается, что вы предоставляете три имени файла: файл, который вас интересует, файл с именем -pass и файл с именем file:D:\..... , следовательно, вы получаете сообщение об ошибке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .