SignTool의 알려진 문제 및 문제 해결

SignTool을 사용할 때 가장 일반적인 유형의 오류는 내부이며 일반적으로 다음과 같습니다.

SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024885 / 0x8007000B) 

오류 코드가 0x80080206(APPX_E_CORRUPT_CONTENT)와 같은 0x8008 시작하면 서명되는 패키지가 유효하지 않습니다. 이러한 유형의 오류가 발생하면 패키지를 다시 빌드하고 SignTool을 다시 실행해야 합니다.

SignTool 에는 인증서 오류 및 필터링을 표시하는 데 사용할 수 있는 디버그 옵션이 있습니다. 디버깅 기능을 사용하려면 옵션 바로 뒤에 sign전체 SignTool 명령을 배치 /debug 합니다.

SignTool sign /debug [options]

더 일반적인 오류는 0x8007000B. 이러한 유형의 오류의 경우 이벤트 로그에서 자세한 정보를 찾을 수 있습니다.

이벤트 로그에서 자세한 정보를 찾으려면 다음을 수행합니다.

  • Eventvwr.msc 실행
  • 이벤트 로그 열기: 이벤트 뷰어(로컬) -> 애플리케이션 및 서비스 로그 -> Microsoft -> Windows -> AppxPackagingOM -> Microsoft-Windows-AppxPackaging/Operational
  • 가장 최근의 오류 이벤트 찾기

내부 오류 0x8007000B 일반적으로 다음 값 중 하나에 해당합니다.

이벤트 ID 예제 이벤트 문자열 제안
150 오류 0x8007000B: 앱 매니페스트 게시자 이름(CN=Contoso)은 서명 인증서의 주체 이름(CN=Contoso, C=US)과 일치해야 합니다. 앱 매니페스트 게시자 이름은 서명의 주체 이름과 정확히 일치해야 합니다.
151 오류 0x8007000B: 지정된 서명 해시 메서드(SHA512)는 앱 패키지 블록 맵(SHA256)에 사용되는 해시 메서드와 일치해야 합니다. /fd 매개 변수에 지정된 hashAlgorithm이 잘못되었습니다. 앱 패키지 블록 맵과 일치하는 hashAlgorithm을 사용하여 SignTool 다시 실행(앱 패키지를 만드는 데 사용)
152 오류 0x8007000B: 앱 패키지 콘텐츠가 블록 맵에 대해 유효성을 검사해야 합니다. 앱 패키지가 손상되었으며 새 블록 맵을 생성하려면 다시 작성해야 합니다. 앱 패키지를 만드는 방법에 대한 자세한 내용은 MakeAppx.exe 도구를 사용하여 앱 패키지 만들기를 참조 하세요.

또 다른 일반적인 오류는 0x80080057. Windows에서 SignTool 도구를 사용하여 PE(이식 가능한 실행 파일) 파일에 서명하려고 할 때 다음과 같은 문제가 발생할 수 있습니다.

  • 4GB 이상의 PE 파일에 서명하지 못했습니다. 서명을 시도하면 "잘못된 매개 변수(0x80080057)" 오류 메시지가 표시됩니다.

  • 4GB보다 큰 파일의 경우 SignTool이 파일에 성공적으로 서명할 수 있더라도 생성된 해시가 정확하지 않을 수 있습니다.

    참고 항목

    .cat 파일의 경우 특히 그렇습니다.

이 문제는 .exe, .sys 등과 같은 PE 파일에 대해 발생합니다. 이 문제는 이미지 크기를 지정하는 PE 헤더의 ULONG 변수로 인해 발생합니다. (이미지 크기는 Vista 및 이전 버전과 같은 하위 수준 운영 체제의 경우 2GB입니다.) 이는 1996년 이후의 디자인 제한 사항입니다. 이 값의 최대 제한은 .exe 및 .sys와 같은 PE 파일의 경우 4GB입니다. .cat 파일은 일반적으로 서명할 수 있지만 생성된 내부 해시는 정확하지 않을 수 있습니다.

이 문제를 해결하려면 서명하려는 PE 파일이 4GB 미만인지 확인합니다. 이전 버전과의 호환성 위험으로 인해 백포트나 영구 수정은 현재 불가능합니다. 그러나 이 문제는 조사 중입니다.

참고 항목

이 문제는 SignTool과 관련이 없습니다. PE 헤더의 디자인은 사용되는 도구에 관계없이 Windows 7 이상 버전의 경우 4GB로 제한됩니다.

질문과 대답(FAQ)

Q1: Windows에서 디지털 서명(및 타임스탬프 카운터 서명)의 현재 공식 파일 크기 제한은 무엇인가요?

A1: .exe 및 .sys와 같은 PE 파일의 경우 서명의 최대 파일 크기는 4GB입니다.

Q2: 큰 파일에 서명하는 기능이 가장 많은 Windows Server 2016과 같은 특정 버전의 Windows가 있나요?

A2: 아니요, 이 문제는 모든 버전의 Windows에 영향을 줍니다.

Q3: Signtool의 64비트 버전이 32비트 버전보다 이 기능을 더 잘 지원하나요?

A: 아니요, SignTool의 64비트 버전은 32비트 버전과 동일한 값을 사용합니다. 따라서 문제는 64비트에서 다시 기본.

Q4: 32비트 버전의 Windows를 사용하는 고객이 64비트 버전의 SignTool을 사용하여 서명된 파일을 사용하려고 하면 문제가 발생할 수 있나요?

A: 아니요. 그러나 어떤 버전의 SignTool이 사용되는지에 관계없이 기본 제한이 다시 적용됩니다.

Q5: 다른 서명 도구 또는 메서드를 모두 사용해야 하나요?

A: 현재 디지털 서명에 대한 대체 방법이 없습니다.