메뉴 건너뛰기

SCM Lab

팁과강좌

   ▣ 생활 속 지혜, S/W, H/W Tip 등 다양한 정보들을 공유하는 곳입니다.
   ▣ 또한 산업공학을 포함한 전문 지식들을 공유하는 장으로 활용하실 수 있습니다.

PC&Mobile Apache2 openssl on Winows XP (https 접속)

SCM 2010.05.15 20:46 조회 수 : 7873

테스트 환경

System : Windows NT 5.1 build 2600
Apache Version 2.2.11 (Win32)
mod_ssl 2.2.11
OpenSSL 0.9.8i
PHP 5.2.9-1 

 

※ Windows- XP에 Apache SSL 보안서버 적용 방법

Apache2에는 기본적으로 openssl이 포함되어 있습니다. 따라서 별도의 설치 없이 바로 인증서를 설치 하 실 수 있습니다.

openssl의 실행파일은 Apache2/bin에 있으며, openssl.cnf 파일은 Apache2/conf에 있습니다.

따라서 작업을 하시기 전에 openssl.cnf 파일을 bin파일로 복사를 해주시면 됩니다.

또한 openssl의 버젼과 apache 버젼과는 어느정도 상관관계가 있으므로 서로 호완이 되는 버젼을 가지고 작업을 해야 하는 것 같습니다.

따라서 위의 버젼이 아니라면 아래의 내용이 적용되지 않을 수 있습니다.

 

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

 

준비 

우선 apache2/bin 폴더에서 libeay32.dll 과 ssleay32.dll 파일을 /windows/system32로 복사를 해줍니다.

 

1. csr 파일을 생성

cmd 명령어를 이용하여 openssl이 설치된 폴더로 이동한 후 아래의 명령어를 입력합니다.

 openssl  req -config openssl.cnf -new -out server-scmlab.csr

 

...

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

...

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

- 국가 (country) : KO

- 구/군 (state or province)

- 시/도 (locality or city) 

- 회사명 (organization)

- 부서 (organizational unit)

- 도메인 주소 (common name) 

 

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

 

※ .csr 파일

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

 

2. 개인키 생성

openssl rsa -in privkey.pem -out server-scmlab.key

...

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

writing RSA key.

위 명령어를 수행하면 server-scmlab.key 파일이 생성됩니다.

 

3. 인증서 생성 

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

위 명령어를 수행하면 server-scmlab.crt 파일이 생성됩니다.

 

이렇게 생성한 피일 중 server-scmlab.crt와 server-scmlab.key 파일을 {아파치 경로}/conf 디렉토리에 복사합니다.

이제 아파치 서버에는 인증서와 개인키가 있습니다. 이 키를 사용하여 아파치 서버가 SSL로 동작할 수 있게

아파치 서버의 httpd.conf 파일을 수정합니다.

 

4. htpd.conf 수정

 

4.1 httpd에 80 밑에 아래 443 추가

Listen 80

Listen 443


 

4.2 Directory 주석 처리

<Directory />
Options FollowSymLinks
AllowOverride None
#Order deny,allow
#Deny from all
</Directory>


주석 처리 해줍니다.

 

4.3 주석 해제

include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-ssl.conf
의 주석은 해지 합니다.

 

5. httpd-ssl.conf 수정

apache2/conf/extra 폴더의 httpd-ssl.conf를 수정합니다.

아래와 같이작성을 하면 ssl을 적용하면, vhost를 사용하지 않아도 다중도메인에 일괄적으로 80과, 443을 사용 하실 수 있습니다.

즉 기존에는 두개의 도메인에 ssl을 적용하기 위해서는 442, 443 등 여러개의 포터를 이용해야 했으나 아래와 같이 적용을 하면

여러개의 도메인 모두 ssl 사용시 443 포터를 공용으로 이용 하실 수 있습니다.

 

------------------------------------------------

NameVirtualHost *:80
NameVirtualHost *:443

 

<VirtualHost *:80>
    ServerAdmin webmaster@aaa.com
    DocumentRoot /www/aaa
    ServerName  aaa.com

    ServerAlias www.aaa.com
</VirtualHost>

 

<VirtualHost *:80>
    ServerAdmin webmaster@bbb.com
    DocumentRoot /www/bbb
    ServerName  bbb.com

    ServerAlias www.bbb.com
</VirtualHost>

.....

......

 

<VirtualHost *:443>
ServerAdmin webmaser@aaa.com

DocumentRoot /www/aaa
ServerName aaa.com
ErrorLog /apache2/logs/ssl-aaa-error_log
CustomLog /apache2/logs/ssl-aaa-access_log common
SSLEngine on
SSLCertificateFile /apache2/conf/server-aaa.crt
SSLCertificateKeyFile /apache2/conf/server-aaa.key
</VirtualHost>

 

 

위와 같이 적용을 한 후 apache2를 재 실행 합니다.

 

아파치를 다시 실행한 후 https://도메인명을 입력하시면 다음과 같은 메지시가 나옵니다.

ssl-error2.JPG

 

 

ssl-error.JPG

 

이러한 에러를 해결하시려면......돈을 주고 신뢰기관으로 부터 인증을 받으시면 됩니다.;;;

단순히 테스트를 해보시고 싶으시면 설치를 해보시는 것도 좋을 듯합니다. 

 

참고 사이트 :

 

1. http://blog.daum.net/question0921/765

2. http://junemp.tistory.com/entry/Apache-SSL-%EC%84%A4%EC%B9%98-2

 

 

 

번호 제목 글쓴이 날짜 조회 수
223 apache2 access log 분할 관리 하기 file SCM 2010.05.25 7295
222 Apache Error : winnt_accept: Asynchronous AcceptEx failed. SCM 2010.05.24 14323
221 Apache Error : unable to include potential exec "include/top.html" SCM 2010.05.24 7314
220 QUEST Tutorial 01 - 설치, 소개 및 환경설정 file 네오랑 2010.05.22 8477
219 Textyle 블로그 메인 주소를 blog.domain.com 로 설정하기 file SCM 2010.05.18 8083
218 원격 데스크톱 연결 끊김 (Windows XP 이상) file SCM 2010.05.18 11932
217 DNSEver를 이용한 2차 도메인 일괄 셋팅 방법(바로 적용하기) file SCM 2010.05.18 6823
216 XE 메일 인증 시 ID/PW 정보 없이 빈 페이지만 올 경우 file SCM 2010.05.15 7473
215 Fake sendmail with ssl gmail for windows XP & XE (xpressengine) file SCM 2010.05.15 8420
» Apache2 openssl on Winows XP (https 접속) file SCM 2010.05.15 7873
213 XE에서 SMTP 비밀번호 찾기 등의 메일 인증 (윈도우용 서버) [1] file SCM 2010.05.12 8402
212 오피스(MS Office) "현재 사용자용으로 설치되지 않았습니다." 해결 방법 file 네오랑 2010.05.01 12541
211 네트워크 부팅으로 윈도우 7 (windows 7) 설치하기 file 네오랑 2010.04.30 26281
210 2010년 국가별 자동차 충돌법규시험 소개 file 네오랑 2010.04.27 8028
209 2010년 국가별 자동차 충돌법규 정리 file 네오랑 2010.04.24 8533
208 2009년 자동차 안전편의 기술동향 보고서 file 네오랑 2010.04.24 7786
207 ARENA를 이용한 Elevator 만들기 Final [1] file 네오랑 2009.07.16 10412
206 ARENA를 이용한 Elevator 만들기 05 file 네오랑 2009.06.29 9928
205 ARENA를 이용한 Elevator 만들기 04 file 네오랑 2009.06.24 10305
204 ARENA를 이용한 Elevator 만들기 03 file 네오랑 2009.06.18 9125