[windows] Windows EXE 파일 서명

나는이 EXE의 I Windows가 “알 수없는 출판사”에서 응용 프로그램에 대한 최종 사용자에게 경고하지 않도록 서명을 좋아한다고 파일을. 저는 Windows 개발자가 아닙니다. 해당 응용 프로그램은 화면 보호기 응용 프로그램을 생성하는 응용 프로그램에서 생성 된 화면 보호기입니다. 따라서 파일 생성 방법에는 영향을 미치지 않습니다.

이미 Verisign 또는 instantssl.com 과 같은 CA코드 서명 인증서 가 필요하다는 것을 이미 알고 있습니다. 내가 이해하지 못하는 것은 EXE 파일에 서명하기 위해 (가능한 경우)해야 할 일입니다. 간단한 설명은 무엇입니까?

Mel Green의 대답이 더 나아 갔지만 signtool은 어떤 경우에 사용할 인증서를 지정하기를 원합니다. 이것이 어떻게 작동하는지 테스트 할 수있는 무료 코드 서명 인증서를 얻을 수 있습니까?

또한 올바른 인증서 종류를 지정하십시오. 대부분의 사이트는 “코드 서명”만 언급하고 실제로 사용자가 컴파일 한 응용 프로그램에 서명하는 것에 대해 이야기합니다. 이것은 나에게 해당되지 않습니다.



답변

Microsoft의 Sign Tool을 사용해보십시오.

Windows Server 2008 및 .NET 3.5 용 Windows SDK의 일부로 다운로드합니다. 일단 다운로드하면 다음과 같이 명령 행에서 사용할 수 있습니다.

signtool sign / a MyFile.exe

사용 가능한 “최고의 인증서”를 사용하여 단일 실행 파일에 서명합니다. 인증서가 없으면 SignTool 오류 메시지가 표시됩니다.

또는 시도해 볼 수 있습니다.

간판 간판

그러면 응용 프로그램 서명 과정을 안내하는 마법사가 시작됩니다. (이 옵션은 Windows SDK 7.0 이후에는 사용할 수 없습니다.)


실행 파일 서명 프로세스를 테스트하는 데 사용할 수있는 인증서를 받으려면 .NET 도구 Makecert를 사용할 수 있습니다 .

인증서 작성 도구 (Makecert.exe)

자체 인증서를 작성하고 실행 파일에 서명하는 데 사용한 인증서는 UAC 가 인증서를 실행 하는 사용자에게 신뢰할 수있는 소스에서 온 것으로 알리기 위해 수동으로 인증서를 시스템의 신뢰할 수있는 루트 CA로 추가해야합니다 . 중요 합니다. ROOT CA로 인증서를 설치하면 사용자 개인 정보가 위험 해집니다. 델과 무슨 일이 있었는지보세요. 코드와 Windows를 통해이 작업을 수행하는 데 대한 자세한 정보는 다음을 참조하십시오.

잘하면 그것은 이것을 시도하는 사람에게 더 많은 정보를 제공합니다!


답변

나는 직장에서 같은 시나리오를 가지고 있었고 여기에 우리의 발견이 있습니다.

가장 먼저 할 일은 인증서를 가져 와서 컴퓨터에 설치하는 것입니다. 인증 기관 에서 인증서를 구입 하거나 makecert를 사용하여 인증서를 생성 할 수 있습니다 .

다음은 두 가지 옵션의 장단점입니다

인증서 구매

  • 찬성
    • CA (Certificate Authority)에서 발급 한 인증서를 사용하면 Windows에서 CA의 인증서를 사용하는 컴퓨터의 “알 수없는 게시자”의 응용 프로그램에 대해 최종 사용자에게 경고하지 않습니다 (OS는 일반적으로 매니 CA의 루트 인증서와 함께 제공됨) )
  • 단점 :
    • CA에서 인증서를 얻는 데 드는 비용이 있습니다

Makecert를 사용하여 인증서 생성

  • 장점 :
    • 단계가 쉽고 최종 사용자와 인증서를 공유 할 수 있습니다
  • 단점 :
    • 최종 사용자는 컴퓨터에 옵션이 아닌 클라이언트에 따라 수동으로 인증서를 설치해야합니다.
    • makecert로 생성 된 인증서는 일반적으로 프로덕션이 아닌 개발 및 테스트에 사용됩니다.

실행 파일 서명

원하는 파일에 서명하는 방법에는 두 가지가 있습니다.

  • 컴퓨터에 설치된 인증서 사용

    signtool.exe 부호 / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v “C : \ filename.dll”

    • 이 예에서는 개인 폴더에 저장된 인증서를 SHA1 지문 (인증서에서 제공)과 함께 사용하여 “C : \ filename.dll”에있는 파일에 서명합니다.
  • 인증서 파일 사용

    signtool 표시 / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f “c : \ path \ to \ mycert.pfx”/ p pfxpassword “c : \ path \ to \ file.exe”

    • 이 예에서는 “c : \ path \ to \ file.exe”파일에 서명하기 위해 인증서 “c : \ path \ to \ mycert.pfx”와 비밀번호 pfxpassword를 사용하고 있습니다.

서명 테스트

방법 1 : signtool 사용

시작> 실행 유형 CMD로 이동> 확인을 클릭하십시오. 명령 프롬프트에서 signtool이있는 디렉토리를 입력하십시오. 다음을 실행하십시오.

signtool.exe는 / pa / v “C : \ filename.dll”을 확인합니다.

방법 2 : Windows 사용

서명 된 파일을 마우스 오른쪽 단추로 클릭 한 다음 속성 선택 디지털 서명 탭을 선택하십시오. 서명이 서명 목록 섹션에 표시됩니다.

이것이 당신을 도울 수 있기를 바랍니다

출처 :


답변

당신은 얻을 수 없는 싼 코드 서명 인증서를 Certum에서 오픈 소스 개발을하고 있다면.

1 년 이상 인증서를 사용해 왔으며 Windows에서 알 수없는 게시자 메시지를 제거합니다.

서명 코드까지는 다음과 같은 스크립트에서 signtool.exe 를 사용 합니다.

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe


답변

ASP의 잡지 ASPects에는 코드 서명 방법에 대한 자세한 설명이 있습니다 (기사를 읽으려면 회원이어야 함). http://www.asp-shareware.org/를 통해 다운로드 할 수 있습니다 .

다음 은 자신 만의 테스트 인증서를 만드는 방법에 대한 설명 링크 입니다.

이것은 또한 흥미로울 수 있습니다.


답변

또 다른 옵션은, 당신이 리눅스 박스에 실행 파일을 서명해야하는 경우 사용하는 것입니다 signcode 로부터 모노 프로젝트 도구 . 그것은되는 우분투에서 지원 .


답변

참조 https://steward-fu.github.io/website/driver/wdm/self_sign.htm
참고 : Microsoft SDK의 signtool.exe

1. 처음 (개인 인증서 작성)

Makecert -r -pe -ss YourName YourName.cer

certmgr.exe -YourName.cer 추가 -s -r localMachine 루트

2.After (앱에 사인을 추가하기 위해)

signtool sign / s YourName YourApp.exe


답변

또 다른 옵션은 Windows 10에서 개발 중이지만 Microsoft의 signtool.exe가 설치되어 있지 않은 경우 Windows의 Ubuntu에서 Bash를 사용하여 앱에 서명 할 수 있습니다. 다음은 요약입니다.

https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/