소개
osslsigncode는 OpenSSL과 cURL을 기반으로 Microsoft signtool.exe의 Authenticode 서명 및 타임스탬프 기능을 구현한 경량 명령줄 도구입니다. 이 도구는 Windows뿐만 아니라 OpenSSL과 cURL이 설치된 다양한 플랫폼에서 컴파일하여 사용할 수 있으며, PE, CAB, CAT, MSI, APPX 및 특정 스크립트 파일에 디지털 서명을 추가할 수 있습니다. 프로젝트는 Michał Trojnara가 유지 관리하며 GPL-3.0 라이선스로 배포됩니다.
상세정보
파일 형식 지원
osslsigncode는 PE(EXE/SYS/DLL 등), CAB, CAT, MSI, APPX 파일과 .ps1, .ps1xml, .psc1, .psd1, .psm1, .cdxml, .mof, .js 확장자를 가진 스크립트 파일에 서명할 수 있습니다.
Java CAB 서명
signtool.exe의 ‘-j javasign.dll -jp low’ 옵션에 해당하는 기능을 지원하여 Java 클래스 파일을 포함한 CAB 파일에 유효한 서명을 추가할 수 있습니다. 현재는 ‘low’ 매개변수만 지원됩니다.
서명 검증, 제거 및 추출
서명 추가 외에도 서명 검증, 제거, 추출 기능을 제공합니다.
타임스탬프 및 프록시 지원
타임스탬프 서버를 지정하여 서명에 타임스탬프를 추가할 수 있으며, 프록시를 통한 타임스탬프 획득도 지원합니다.
PKCS#11 및 CNG 엔진 지원
PKCS#11 토큰(하드웨어 보안 모듈)을 사용하는 경우 엔진 또는 프로바이더(OpenSSL 3.x)를 통해 서명할 수 있습니다. Windows에서는 CNG 엔진을 사용하여 Windows 인증서 저장소의 인증서와 키를 활용할 수 있습니다.
인증되지 않은 Blob 추가
서명 또는 타임스탬프 영역에 1024바이트의 인증되지 않은 데이터 블록을 추가할 수 있습니다. 이 기능은 Dropbox, GoToMeeting 등에서 사용되는 방식입니다.
Linux에서 Windows 실행 파일 서명
Wine을 사용하여 Windows용 바이너리를 빌드한 후, osslsigncode를 사용하면 Windows 시스템 없이도 Authenticode 서명을 추가할 수 있습니다.
CI/CD 파이프라인에서 서명 자동화
PKCS#11 모듈을 지원하는 클라우드 서명 서비스를 활용하면 헤드리스 환경이나 CI 서버에서 코드 서명을 자동화할 수 있습니다.
Windows 인증서 저장소 활용
Windows에서 CNG 엔진을 사용하면 Windows 인증서 저장소에 저장된 인증서로 서명할 수 있어 인증서 관리가 용이합니다.
osslsigncode는 어떤 파일에 서명할 수 있나요?
PE(EXE/SYS/DLL 등), CAB, CAT, MSI, APPX 파일과 .ps1, .ps1xml, .psc1, .psd1, .psm1, .cdxml, .mof, .js 스크립트 파일에 서명할 수 있습니다.
서명에 필요한 인증서는 어떻게 준비하나요?
소프트웨어 게시 인증서(SPC 또는 PEM 형식)와 개인 키(DER, PEM, PVK 형식)가 필요합니다. PKCS#12 컨테이너를 사용할 수도 있습니다.
osslsigncode는 Windows에서만 사용할 수 있나요?
아니요, OpenSSL과 cURL이 설치된 대부분의 플랫폼에서 컴파일하여 사용할 수 있습니다. Windows에서는 winget으로 간편하게 설치할 수 있습니다.
시스템 요구사항
Windows 11 · x64 · winget


