Windows용 인증서 및 App 서명
포스트
취소

Windows용 인증서 및 App 서명

Windows용 네이티브 웹앱을 패키징하고 배포하기 위해 필요한 signtool(개발자 서명)과 makecert(서명자 생성)에 대해 pgAdmin4를 가지고 작업한 내용을 기록합니다.

win32 인증서 및 서명

인증서 만들기

참고 문서

인증서 도구 위치

  • C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64
  • Windows Kits 아래에 가장 높은 버전의 x64 폴더를 사용

인증서 도구들

인증서(pfx) 생성 방법

1
2
3
4
5
6
7
8
9
10
11
12
# STEP.1 pvk와 cer 파일 생성
# + (pvk용) 개인키 암호: "bitnine"
makecert -n "CN=AgensEnterprise" -r -sv bitnine.pvk bitnine.cer

# STEP.2 cer 파일로 spc 파일 생성
cert2spc.exe bitnine.cer bitnine.spc

# STEP.3 localMachine에 AgensEnterprise 인증기관 등록
certmgr.exe -add bitnine.cer -s -r localMachine root

# STEP.4 pvk, spc 파일로 pfx 파일 생성
pvk2pfx -pvk bitnine.pvk -pi bitnine -spc bitnine.spc -pfx bintine.pfx

인증서 관리 도구에 등록된 AgensEnterprise

15_01-AgensEnterprise

서명하기

사전 작업

  • bitnine.pfx 파일 : ${PGADMIN4_SRC}\pkg\win32\build_lib 에 저장
  • cert2mgr.exe 로 localMachine 에 AgensEnterprise 인증기관 등록
  • build 결과물인 exe 파일 위치 확인

명령 프롬프트(CMD)에서 서명하기

1
2
3
4
5
# STEP.1 exe 파일에 pfx 파일로 서명하기 (localMachine에 등록된 인증기관 사용)
signtool sign /t http://time.certum.pl /f .\pkg\win32\build_lib\bitnine.pfx /p bitnine .\dist\pgadmin4-6.5-x64.exe
# ==>
# Done Adding Additional Store
# Successfully signed: .\dist\pgadmin4-6.5-x64.exe

Make.bat 스크립트 상의 서명작업

1
2
3
4
5
6
7
8
9
10
11
12
:SIGN_INSTALLER
    ECHO Attempting to sign the installer...
    CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /t http://time.certum.pl /f %BUILD_LIB_DIR%\bitnine.pfx /p bitnine "%DISTROOT%\%INSTALLERNAME%"
    IF %ERRORLEVEL% NEQ 0 (
        ECHO.
        ECHO **********************************************
        ECHO * Failed to sign the installer
        ECHO **********************************************
        PAUSE
    )

    EXIT /B 0

GUI 도구인 wizard 로 서명하기

  • signtool signwizard 실행
  • 안내대로 수행

15_02-SignWizard

15_03-SignWizard

15_04-SignWizard

서명 된 exe 파일의 디지털 서명 속성

15_05-SignWizard

패키징 예제 pgAdmin4

Make.bat의 환경변수 설정

  • PGADMIN_PYTHON_DIR : 파이썬 위치
  • PGADMIN_KRB5_DIR : 커버로스5 위치
  • PGADMIN_POSTGRES_DIR : postgresql 위치
  • PGADMIN_INNOTOOL_DIR : Inno Setup 6 위치
  • PGADMIN_VCREDIST_DIR : VC++ Runtime 필수 라이브러리 Installer 위치
  • PGADMIN_SIGNTOOL_DIR : signtool 위치
1
2
3
4
5
6
7
8
:SET_ENVIRONMENT
    ECHO Configuring the environment...
    IF "%PGADMIN_PYTHON_DIR%" == ""   SET "PGADMIN_PYTHON_DIR=C:\Python310"
    IF "%PGADMIN_KRB5_DIR%" == ""     SET "PGADMIN_KRB5_DIR=%BUILD_LIB_DIR%\krb5"
    IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=%BUILD_LIB_DIR%/postgres"
    IF "%PGADMIN_INNOTOOL_DIR%" == "" SET "PGADMIN_INNOTOOL_DIR=C:\Program Files (x86)\Inno Setup 6"
    IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Redist\MSVC\14.16.27012"
    IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64"

 
 

끝!   읽어주셔서 감사합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.