본문 바로가기
개발/Windows

사설인증서 생성 & 실행파일 코드사이닝 하기

by lucidmaj7 2019. 12. 12.
728x90
반응형

openssl 1.1.1g기준 입니다.

https://slproweb.com/products/Win32OpenSSL.html

 


1. OpenSSL을 이용하여 사설 인증서 생성하기

 1.1. 개인키 생성

인증서로 실행파일을 코드사이닝 하려면 당연 인증서가 필요하다. OpenSSL명령어를 통해 인증서를 생성해보자. 추가로 비밀번호를 입력 받는다.

openssl genrsa -aes256 -out private.key 2048

private.key파일이 생성된다.

 

 1.2. 인증요청서 생성(CSR)

개인키를 생성하였으면 인증요청서를 만들어준다. 이때 회사이름, 이메일, 국가정보 등을 입력한다.

openssl req -new -in private.key -out req.csr

req.csr 파일이 생성된다.

 

 1.3. 인증서 생성 (CRT)

인증서를 생성해준다.

openssl x509 -req -days 3650 -in req.csr -signkey private.key -out my.crt

my.crt파일이 생성된다.

 

 1.4. 개인키 포함된 PFX인증서 생성

이제 개인키가 포함된 pfx파일을 만들어 준다. 

openssl pkcs12 -export -in my.crt -inkey private.key -out mycert.pfx

인증서가 생성되었다. 

 

2. 코드사이닝 하기

Windows에서 코드사이닝을 하려면 signtool이 있어야 한다. signtool은 Visual Studio설치시 같이 설치 된다.

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

 

SignTool.exe(서명 도구)

이 문서의 내용 --> 서명 도구는 파일에 디지털 서명을 하고, 파일의 서명을 확인하고, 파일에 타임스탬프를 기록하는 명령줄 도구입니다.Sign Tool is a command-line tool that digitally signs files, verifies signatures in files, and time-stamps files. 이 도구는 자동으로 Visual Studio와 함께 설치됩니다.This tool is automatically inst

docs.microsoft.com

코드사이닝 하는 명령어는 아래와 같다.

signtool.exe sign /f [pfx파일] /p [password] [사이닝할 파일]

https://docs.microsoft.com/en-us/windows/win32/seccrypto/using-signtool-to-sign-a-file

 

Using SignTool to Sign a File - Win32 apps

In this article --> The following command signs the file named MyControl.exe using a certificate stored in a Personal Information Exchange (PFX) file: SignTool sign /fMyCert.pfx MyControl.exe The following command signs the file using a certificate stored

docs.microsoft.com

코드사이닝을 완료하고 바이너리 파일을 보면 코드사이닝이 된 것을 볼 수 있다. 하지만 사설인증서라 올바른 인증서가 아닌 것으로 나온다. 무결성 검증여부를 확인할 때만 유용할 것 같다.

 

728x90
반응형

댓글