운영체제 관리/톰캣(Tomcat)

windows-xp에 아파치2.2 SSL 보안서버 적용 방법

본클라쓰 2010. 4. 6. 15:57

 

아파치 2.2 버전에 SSL 보안서버를 등록하는 방법이다. 아파치 배포 버전에 보면 Openssl이 포함된 설치 파일이 있다. 이 버전을 다운로드 받아 설치해야 한다. 아파치 2.2 버전에 SSL이 지원하는 않는 버전에서 mod_ssl.so 모듈을 다운로드 받아 아파치 모듈이 등록하는 방법은 mod_ssl.so 모듈이 아파치버전과 호환이 되어야 SSL이 적용된다.

 

※ SSL (Secure Socket Layer)

 어플리케이션 계층과 TCP 사이에 놓인 계층으로 전송 데이터를 암호화하는 프로토콜이다. 웹 브라우저와 웹 서버 사이에 보안 접속 통신을 말하며 데이터가 암호화되어 전송된다.  암호화 방식은 공개키, 개인키 방식으로 암호화하며 한쪽은 암호화, 다른 한쪽은 복호화 과정을 거쳐 데이터를 전송한다. SSL은 인증서(certificate) 방식으로 동작한다. SSL을 적용해야 할 페이지는 로그인 페이지, 개인 정보 페이지, 쇼핑몰의 구매 페이지등 개인정보나 보안에 신경써야 할 부분에 적용해야 한다.  

 

* 아파치 2.2 버전 mod_ssl.so 모듈 다운로드 ( 모듈을 따로 등록하는 방법은 추천하지 않음)

 

mod_ssl.so

 

 

 

 

■ 인증서 생성 

 

우선, 아파치 2.2버전에 SSL을 적용하기 전에 인증서와 개인키를 생성해야 한다. 아파치2.2버전은 Openssl 이라는 인증서 생성 프로그램을 같이 배포하고 있다. Openssl 프로그램이 생성한 인증서는 공인 기관의 인증서와 달리 브라우저에서 신뢰되지 않는 인증서로 분류하지만 일단 Openssl 로 인증서를 생성하는 방법이다.

 

 

1. {아파치 경로}/bin

 

bin 디렉토리에 가보면 openssl, openssl.exe, libeay32.dll, ssleay32.dll 파일이 있다. 여기서 libeay32.dll 과 ssleay32.dll 파일은 /windows/system32 폴더에 복사한다. 만약, openssl 파일이 없다면 openssl.exe 파일이 실행되지 않기 때문에 아파치 설치 경로에서 openssl 파일을 찾아서 bin 폴더로 복사한다. openssl 파일이 설정파일이다.

 

2. 명령어창으로 {아파치 경로}/bin 접근 csr 파일을 생성

 

> openssl  req -config openssl.cnf -new -out test-server.csr

 

...

Enter PEM pass pharse : [개인키 생성 비번] 

... 

위 명령어를 실행 후 CSR에 필요한 항목을 모두 작성하면 test-server.csr 파일과 privkey.pem 파일이 생성된다.  

 

 

※ .csr 파일

 CSR( Certificate Signing Request)의 약자로 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서 파일이다.

 

CSR 은 다음과 같은 항목을 가지고 있다. 

- 국가 (country) : KO

- 구/군 (state or province) 

- 시/도 (locality or city)  

- 회사명 (organization) 

- 부서 (organizational unit)

- 도메인 주소 (common name)  

 

3. 개인키 생성

 

> openssl rsa -in privkey.pem -out test-server.key

 

...

Enter pass phrase for privkey.pem : [위에서 입력한 비밀번호]

writing RSA key. 

위 명령어를 수행하면 test-server.key 파일이 생성된다.

 

4. 인증서 생성

 

> openssl x509 -in test-server.csr - out test-server.crt -req -signkey test-server.key -days 365

위 명령어를 수행하면 test-server.crt 파일이 생성된다.

 

이 두 파일을 {아파치 경로}/conf 디렉토리에 /ssl 디렉토리를 생성하여 복사한다. 이제 아파치 서버에는 인증서와 개인키가 있다. 이 키를 사용하여 아파치 서버가 SSL로 동작할 수 있게 아파치 서버의 httpd.conf 파일을 수정한다.

 

 

 

 아파치2.2 버전 httpd.conf 설정에 SSL 모듈 등록하기

 

1. mod_ssl.sl 모듈 로드하게 등록

 

 

2. SSL 설정 파일 포함시키기

 

 

3. {아파치 경로}/conf/extra/httpd-ssl.conf 파일 수정 

 

SSLCertificateFile "C:/server/Apache2.2/conf/ssl/test-server.crt"

#SSLCertificateFile "C:/server/Apache2.2/conf/server-dsa.crt"

 

#    Server Private Key:

#    If the key is noe combined with the certificate, use this

#    directive to point at the key file.  Keep you can configure

#    you've both a RSA and a DSA private key you can configure

#    both in parallel (to also allow the use of DSA ciphers, etc.)

SSLCertificateKeyFile "C:/server/Apache2.2/conf/ssl/test-server.key"

#SSLCertificateKeyFile "C:/server/Apache2.2/conf/server-dsa.key"

 

아파치2.2 버전을 설치하면 {아파치 경로}/conf/extra 디렉토리에서 httpd-ssl.conf 파일을 수정한다. 인증서 위치와 키 파일의 위치를 수정한다. 

  

설정 변경을 마치면 아파치 서버를 재 가동한다. 가동 후에 설정파일 로딩에 오류가 없고 "http://..." 과 "https://..." 의 두 프로토콜로 같은 페이지를 요청했을 때 똑같이 출력된다면  SSL이 동작하고 있는 것이다.

 

 

mod_ssl.so
0.12MB