오래전 이야기/Server

Using OpenSSL

리눅스 엔지니어였던 2008. 9. 15. 13:44
 
openssl 공식 사이트 www.openssl.org 에서 무료로 다운로드 받으실 수 있습니다. (Apache-style 라이센스)
아래의 설치 과정을 참고 바랍니다.(레드헷 8.0 기반에서 설치 테스트 되었습니다.)

※ openssl 설치 순서

1. zlib 모듈 설치
2. 최신 openssl 소스 얻기
3. 설정단계(./config)
4. 컴파일(make)
5. 컴파일 테스트(make test)
6. 설치(make install)
7. 동적 라이브러리 적용

1. zlib 모듈 설치

zlib 모듈은 시스템에 기본 설치가 되어있지만, 암호화 모듈을 설치하는 만큼 최신버젼으로 업데이트합니다.
① http://www.gzip.org/zlib/ 에서 최신 zlib 소스를 받습니다.
/usr/local/src/ 으로 zlib 소스의 압축을 풀고, /usr/local/src/zlib-x.x 디렉토리로 이동합니다.
② ./configure --shared 으로 컴파일 설정합니다.
③ make test install 으로 컴파일, 테스트, 설치를 진행합니다.
④ make clean 으로 컴파일시의 오브젝트들을 삭제합니다.
⑤ /usr/local/lib 를 공유라이브러리 추가합니다.
리눅스 기준으로 /etc/ld.so.conf 파일에 /usr/local/lib 디렉토리가 없다면 추가합니다.
echo "/usr/local/lib" >> /etc/ld.so.conf 실행하고,
/sbin/ldconfig 으로 추가된 동적라이브러리 디렉토리를 설정해 줍니다.
※ 각 운영체제별로 설정이 다르므로, 동적라이브러리에 대한 가이드를 참고 바랍니다.
- zlib-1.2.1.tar.gz 설치 예시
[root@web1 root]# cd /usr/local/src
[root@web1 src]# wget http://www.gzip.org/zlib/zlib-1.2.1.tar.gz
...
[root@web1 src]# tar zxf zlib-1.2.1.tar.gz
[root@web1 src]# cd zlib-1.2.1
[root@web1 zlib-1.2.1]# ./configure --shared
...
[root@web1 zlib-1.2.1]# make test install
...
[root@web1 zlib-1.2.1]# make clean
...
[root@web1 zlib-1.2.1]# echo "/usr/local/lib" >> /etc/ld.so.conf
[root@web1 zlib-1.2.1]# /sbin/ldconfig

2. 최신 openssl 소스 얻기

www.openssl.org/source/ 에서 최신 버젼의 소스를 확인합니다. [LATEST] 가 붙어있는 소스가 최신 소스입니다.

3. 설정단계(./config)

openssl 소스 컴파일 설정전에 zlib 라이브러리 변수 옵션을 먼저 잡아줍니다.
export LDFLAGS=-L/usr/local/lib
export CPPFLAGS=-I/usr/local/include
최신 openssl 소스를 다운받은 후에 압축을 풀고, 풀려진 openssl 디렉토리에서 컴파일 설정을 진행합니다.
--openssldir 디렉토리를 /usr/local/openssl 과 같이 특정 디렉토리를 지정해 줍니다.
./config \
--openssldir=/usr/local/openssl \
shared \
threads \
zlib

4. 컴파일(make)

컴파일을 진행합니다.
make

5. 테스트(make test)

테스트를 진행합니다.
make test

6. 설치(make install)

openssl을 설치합니다.
make install
openssl 컴파일 오브젝트들을 삭제합니다.
make clean
openssl 컴파일 옵션 변수들을 삭제합니다.
unset LDFLAGS
unset CPPFLAGS

7. 동적 라이브러리 적용

openssl 라이브러리들을 시스템 동적 라이브러리 설정에 추가합니다.(레드헷 기준)
echo /usr/local/openssl/lib >> /etc/ld.so.conf
/sbin/ldconfig

- openssl-0.9.7d.tar.gz 설치 예시

(리눅스 레드헷 8.0 이상 기준 설치 예시입니다.)
[root@web1 root]# cd /usr/local/src
[root@web1 src]# wget http://www.openssl.org/source/openssl-0.9.7d.tar.gz
...
[root@web1 src]# tar zxf openssl-0.9.7d.tar.gz
[root@web1 src]# cd openssl-0.9.7d
[root@web1 openssl-0.9.7d]# export LDFLAGS=-L/usr/local/lib
[root@web1 openssl-0.9.7d]# export CPPFLAGS=-I/usr/local/include
[root@web1 openssl-0.9.7d]# ./configure \
> --openssldir=/usr/local/openssl \
> shared \
> threads \
> zlib
...
[root@web1 openssl-0.9.7d]# make
...
[root@web1 openssl-0.9.7d]# make test
...
[root@web1 openssl-0.9.7d]# make install
...
[root@web1 openssl-0.9.7d]# make clean
[root@web1 openssl-0.9.7d]# unset LDFLAGS
[root@web1 openssl-0.9.7d]# unset CPPFLAGS
[root@web1 openssl-0.9.7d]# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
[root@web1 openssl-0.9.7d]# /sbin/ldconfig