OpenSSL Windows 에서 Visual Studio 로 빌드
윈도에서 OpenSSL 소스를 빌드하여 사용하는 방법.
사전 준비
- Visual Studio 컴파일러가 필요하다. 상용 라이센스가 없다면 Express 버전을 사용해도 된다.
- 원래는 perl 이 필요하나 Visual Studio 프로젝트 파일을 사용하므로 상관없다.
빌드
- openssl 홈페이지에서 라이브러리를 다운받는다.
- 압축을 풀고 나온 Install로 시작되는 파일들을 읽어 본다. 플랫폼별로 존재하며 확장자에는 플랫폼명이 있다.
예로 Win32 에서 빌드할 경우 Install.w32, Win64는 Install.w64를 참고하며 Unix는 Install 를 읽어 본다 - perl 로 작성된 ./Configure 스크립트를 수행하여 Makefile 을 생성하고 build 환경을 구성하게 된다.
기본적으로 static library 로 빌드되므로 dynamic library 로 빌드할 경우 shared 옵션을 추가한다.
openssl 에는 특허가 걸려있는 알고리즘이 있다. 오래되서 취약하고 쓸 일도 없는 알고리즘들이므로 다음 옵션을 꼭 추가해서 build 시 제외시키자.
no-idea no-md2 no-mdc2 no-rc5 no-rc4
Windows 용 빌드 방법
소스 다운로드
git clone https://github.com/openssl/openssl.git
안정 버전 체크아웃
git checkout -b OpenSSL_1_0_2-stable origin/OpenSSL_1_0_2-stable
nmake 용 Makefile 생성
perl Configure VC-WIN32 no-idea no-md2 no-mdc2 no-rc5 no-rc4 no-asm --prefix=d:\devel\openssl\openssl-1.0.0d_vc2010
빌드
ms\do_ms.bat
TroubleShooting
Windows에서 빌드시 다음 같은 오류가 나면 해당 소스 파일을 에디터에서 열어서 UTF-8 형식으로 저장하거나 소스의 처음 부분에 ''#pragma warning(disable: 4819)'' 를 추가해 준다.
현재 코드 페이지(number)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
The file contains a character that cannot be represented in the current code page (number). Save the file in Unicode format to prevent data loss.
같이 보기
- https://famellee.wordpress.com/2013/01/30/build-openssl-with-visual-studio-without-perl/
- OpenSSL 컴파일(compile) & 빌드(build) - 예전 문서