Windows의 OpenSSL: 명령줄을 통해 파일에 서명할 때 발생하는 문제

Windows의 OpenSSL: 명령줄을 통해 파일에 서명할 때 발생하는 문제

명령줄을 통해 Windows Server 2012에서 OpenSSL을 사용하여 XML 파일에 서명해야 합니다.

불행히도 명령 내부에 암호를 설정하면 작동하지 않았습니다. 그런 다음 항상 "파일 하나만 서명하거나 확인할 수 있습니다."라는 오류가 발생합니다.

암호 옵션 없이 명령줄을 사용하면 암호에 대한 질문을 하고 입력하면 서명 파일이 생성되므로 작동하는 것 같습니다.

안타깝게도 자동화된 스크립트에서 명령을 사용하고 싶기 때문에 명령줄을 통해 암호를 전달해야 합니다.

다음 줄로 시도했습니다.

암호 옵션 없이(잘 작동함):

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"

암호 옵션 사용(작동하지 않음/참고: 특수 문자가 포함되어 있고 암호 주위에 큰따옴표를 통해 이스케이프 처리되지 않았기 때문에 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"

어쩌면 어디에서나 잘못된 구문이 있을 수 있습니다. 어떤 도움이라도 주시면 감사하겠습니다.

친애하는,

P. 바우멜

답변1

매뉴얼 페이지를 확인하는 중openssl-dgst(v1.0.2, 그러나 다른 최신 버전에도 유효함)은 암호 인수에 대한 올바른 인수가 다음과 같다는 것을 보여줍니다.-passin, 아니다 -pass.

인수가 -pass옵션 스위치로 인식되지 않고 dgst 명령의 마지막 매개변수가 파일 이름을 나타내므로 세 가지 파일 이름을 제공한다고 가정합니다. 관심 있는 파일, 이름이 지정된 파일 -pass및 이름이 file:D:\....., 따라서 귀하가받는 오류 메시지입니다.

관련 정보