OpenSSL no Windows: Problemas ao assinar um arquivo por meio da linha de comando

OpenSSL no Windows: Problemas ao assinar um arquivo por meio da linha de comando

Tenho que assinar um arquivo XML com OpenSSL em um Windows Server 2012 por meio de linha de comando.

Infelizmente não funcionou se eu definisse a senha dentro do comando. Sempre recebo o erro: "Só é possível assinar ou verificar um arquivo"

Se eu usar a linha de comando sem a opção de senha, então parece funcionar, pois questiona a senha e, se inserida, cria um arquivo sig.

Infelizmente eu gostaria de usar o comando em um script automatizado, então preciso passar a senha via linha de comando.

Tentei com as seguintes linhas:

Sem opção de senha (funciona bem):

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"

Com a opção de senha (não funciona/Nota: a senha armazenada no arquivo txt, pois contém caracteres especiais e o escape entre aspas duplas em torno da senha não funcionou):

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"

Talvez eu tenha sintaxe errada em algum lugar. Qualquer ajuda seria apreciada.

Atenciosamente,

P. Baeumel

Responder1

Verificando a página de manual paraopenssl-dgst(v1.0.2, mas também válido para outras versões menos recentes) mostra que o argumento correto para um argumento de senha é-passin, não -pass.

Como o argumento -passnão é reconhecido como uma opção de opção e o(s) último(s) parâmetro(s) do comando dgst indica o nome do arquivo, presume-se que você esteja fornecendo três nomes de arquivo: O arquivo no qual você está interessado, um arquivo nomeado -passe um arquivo nomeado file:D:\....., daí a mensagem de erro que você está recebendo.

informação relacionada