Post List

2015년 1월 22일 목요일

OpenSSL 빌드 (Visual Studio 2010 기준)

OpenSSL
네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈소스 이다.C 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호화 기능이 들어있다. 그래서 암호화가 필요한 경우 OpenSSL 을 이용하는 경우가 많다.

거의 모든 Platform에서 OpenSSL을 이용할 수 있다.
그중 Visual Studio 2010에서 빌드하는 과정을 설명하겠다.

참고로 Windows 8.1 x64 에 VS2010, VS2012, VS2013(이건 설치했다가 삭제함), VS2015 Preview가 설치되었던 PC에서는 계속 빌드가 실패하였다. 빌드 도중에 오류 창이 뜨면서 디버그 / 취소를 묻는... ㅠㅠ
그래새 Windows 7 x64에 VS2010만 설치된 PC에서 빌드를 하여 성공하였다.

1. 필요한 파일 다운로드

  - OpenSSL 다운로드

     https://www.openssl.org/source/

   위 사이트에서 다운로드가 가능하다. 필자의 경우는 2015년 1월 15일에 올라온 1.0.1l 버전을 이용하였다.

  - ActivePerl 다운로드

     http://www.activestate.com/activeperl/downloads

     빌드하는데 필요한 기능인 Perl을 다운받아서 설치한다.  PATH에 해당 경로를 추가하는 옵션은 반드시 체크해야한다. (자동으로 체크되어 있다.)

  - NASM 다운로드

     http://www.nasm.us

     nasm 역시 빌드하는데 사용된다. zip파일로 받아서 압축을 풀어도 되고, install용 exe파일을 받아도 된다. 설치된 폴더로 가서 nasm.exe 파일을 Visual Studio 안에 VC의 bin 폴더에 복사를 해 놓으면 편하다. 필자의 경우는 경로가 다음과 같았다.

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

2. 빌드

  - Visual Studio 2010 Command Prompt를 실행한다.

     실행된 상태에서 perl 및 nasm의 실행을 확인해 봐야 한다. perl aaa.pl 이라고 쳤을 때 오류 메세지가 나고 nasm 이라고 쳤을 때 오류메세지가 나면 정상이다. 파일이 없다고 나오면 제대로 설정이 안된 것이다.
    (필자의 경우 Windows 8.1에서는 여기서 perl을 못찾았다. 그래서 그냥 cmd 로 들어가니 perl 은 찾아서 정상적으로 실행되는데 VC/bin 폴더를 PATH에 추가하였는데도 빌드 중 계속 오류가 발생하였다.)

  - 다운받은 OpenSSL을 편한 위치에 압축을 푼다.

  - 해당 폴더로 가서 아래와 같이 설정한다.

      perl Configure VC-WIN32 --perfix==[바이너리 설치경로]

     필자의 경우는 바이너리 설치경로를 D:\Build-OpenSSL로 했으며, 특허 문제를 피하기 위해서 idea, mdc2, rc5를 설치하지 않도록 설정했다. 그래서 아래와 같이 설정하였다.

     perl Configure VC-WIN32 no-idea no-mdc2 no-rc5 --perfix==D:\Build-OpenSSL

  - NASM을 사용하도록 설정한다.

      ms\do_nasm

  - 컴파일을 시작한다. 꽤나 오래 걸리니깐 기다려야 한다.

      nmake -f ms\ntdll.mak

  - 컴파일이 정상적으로 끝났으면 테스트를 해 볼수 있다. (안해도 된다.)

      nmake -f ms\ntdll.mak test

     필자의 경우는 idea를 뺐기 때문인지 ideatest에서 오류가 발생했다.

  - 이제 바이너리 및 헤더파일, Lib 등을 만들어주면 된다.

      nmake -f ms\ntdll.mak install

3. 완성

   처음 설정한 폴더로 가면 바이너리 파일들이 생성되어 있다.

   혹시나 필요한 사람이 있을지 모르니 필자가 생성한 바이너리를 다운받을려면 아래 Link를 누르면 된다.
    Build-OpenSSL.zip

   해당 바이너리를 사용하는 방법은 아래 Link를 참조하면 된다.

OpenSSL을 Visual Stidio 2010에 적용하기