🩵electron

windows 설치파일 digitcert로 전자서명 하기

해서미 2024. 7. 17. 16:27

digitcert 인증서 구입

 

하면 이렇게 명함과 함께 usb를 전달받는다.

뒷면에 써있는 홈페이지로 들어가본다. 

 

뭔데 겁나 의심스럽게 인증서 페이지가 https 인증도 안되어있는거지..? 

잘못 들어온게 맞는듯

뭔 정식으로 배송온 명함에 있는 url이 이모양인거지,, 해킹당했나 (이딴 수상한 페이지가 있는 명함은 도대체 왜 같이 배송온걸까)

아무튼 저건 잊고,,

이메일에 함께 온 가이드대로 하면 금방 함. 

 

사전 준비 사항

usb에 토큰이 blank 형태로 배송됨

초기 상태에는 보안 토큰에는 아직 인증서가 없으며, 사용자가 직접 인증서를 설치해야 함.

 

1. (세이프넷 툴 URL) 다운로드

    https://www.digicert.com/StaticFiles/SafeNetAuthenticationClient-x64.msi

2.   DigiCert Hardware Certificate Installer 다운로드

    https://www.digicert.com/StaticFiles/DigiCertHardwareCertificateInstaller.zip

    initialization code 필요

3. Windows SDK 다운로드

    https://developer.microsoft.com/ko-kr/windows/downloads/windows-sdk/

    여기에 포함되어있는 signtool.exe를 사용할 예정

4. sign을 진행할 윈도우 어플리케이션 준비

 

설치할거 다 했으면 이제 크게 두가지 과정으로 나뉜다. 

1. blank 상태인 usb에 인증서 설치하기

2. 설치한 인증서로 내 어플리케이션에 서명하기

 

 

USB에 인증서 설치하기

1. blank 상태의 토큰인 usb 를 PC에 삽입

 

2. DigiCert Hardware Certificate Installer 실행

  • initialization code 입력
  • Re-initialize my token ~ 체크박스 선택
  • 알고리즘 RSA-4096 선택
  • 토큰 이름 구분 가능하게 적당히 만들어서 입력, password 입력
  • administrator password 위에 체크박스(default 비밀번호 사용) 선택 (숫자0 48개)
    Administrator Password를 5회 틀릴 경우, 해당 USB Token은 더 이상 사용 불가하며 Token 비용을 지불하신 뒤 새로운 USB Token을 해외 배송 받아야함
    앱 사이닝 할 때 일반적인 과정에서는 사용할 일이 없다. 

3. 인증서 설치 프로세스가 완료되면 Close 클릭

 

인증서로 내 어플리케이션에 서명하기

1. 작업 폴더 아무거나 만들어서 이 폴더에 아래 파일을 준비해준다. 

  • signtool.exe ( signtool.exe는 C:\Program Files (x86)\Windows Kits\10\bin\버전\x64 경로에 있음. 복사해서 작업폴더로 가져다두고 쓰는게 편함)
  • 사인할 내 어플리케이션 (example_app.exe)

 

2. 해당 폴더에서 명령 프롬포트를 열고 signtool.exe로 서명을 진행한다. 

signtool.exe sign /s my /d stephow-sign /fd sha1 /td sha256 /tr http://timestamp.digicert.com example_app.exe

 

여기서, 만약 인증서가 여러개이면

 

SignTool Error: Multiple certificates were found that meet all the given
        criteria. Use the /a option to allow SignTool to choose the best
        certificate automatically or use the /sha1 option with the hash of the
        desired certificate.

 

이런 오류가 뜨는데 이럴 땐 

signtool.exe sign /s my /d stephow-sign /fd sha1 /td sha256 /tr http://timestamp.digicert.com /a example_app.exe

 

이렇게 /a 옵션을 붙이면 자동으로 가장 적합한 인증서를 찾아서 그걸로 사이닝 해준다. 

 (인증서가 왜 여러개 있나 했는데, 사설인증서로 이것저것 테스트하다 남아있는 잔재인듯,,)

 

자세한 옵션 설명

https://learn.microsoft.com/ko-kr/dotnet/framework/tools/signtool-exe

 

서명 명령어를 실행하면, SafeNet Authentication Client가 실행되며 비밀번호를 입력하라는 창이 뜸
USB Token 설치 시, 설정한 비밀번호를 입력한다. 

완료되면 아래 그림과 같이 Successfully signed 가 뜬다. 

 

 

3. 해당 앱에 서명이 잘 되었는지 확인하려면 exe파일의 속성에서 digital signatures를 확인해준다.