RadarURL

웹 프로그래밍
2013.03.01 07:17

Apache2 openssl on Winows XP (https 접속)

조회 수 3051 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

테스트 환경

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://도메인명을 입력하시면 다음과 같은 메지시가 나옵니다.

fece4161d25c83bde91faee305ab13bb.jpg

 

 

735a1ba32334835f6dec79c6f25c23b4.jpg

 

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

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

 

참고 사이트 :

 

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

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

 

출처 : http://www.scmlab.com/4588

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. No Image notice by 처누 2003/08/18 by 처누
    Views 928104 

    [공지] 공부 게시판 입니다.

  2. WIndows Application의 실행 속도 측정

  3. 메모리 부족 현상 (allowed memory size of 134217728 bytes..)

  4. Guzzle - cURL error 60: SSL certificate problem: unable to get local issuer certificate 문제 해결

  5. XE 캐시파일 재성생후 404 Oops, Sorry. Page is not found! 나올때

  6. [Apple] 엔터프라이즈 계정신청 (Enterprise Program)

  7. XE - " Fatal error: Class 'Object' not found in " / class 낫파운드 오류

  8. [MSA] MSA란 무엇인가? 개념 이해하기

  9. iOS 앱 개발을 위한 인증서 생성 및 관리

  10. [ iOS ] 앱 스토어 개인, 회사, 엔터프라이즈 차이점

  11. PHP 파서 이해하기 (<?php의 php를 생략하고 간단히 <? 태그 와 ?> 태그를 사용하는 방법)

  12. SVN의 cleanup 에러시 해결방법

  13. [오류해결] svn cleanup failed-previous operation has not finished; run cleanup if it was interrupted

  14. TortoiseSVN 계정변경

  15. SVN passwd 설정 : 계정 (users/passwd)

  16. XE 비회원 글쓰기 항목 지우기

  17. 메모리 영역 (code, data, stack, heap)

  18. [SVN] Subversion 명령들

  19. IBM JDK 1.6 에서 Spring 2.5.2를 사용할 때 GenericTypeResolver 에서 NullPointerException이 발생하는 문제

  20. 오른쪽 마우스 금지 소스 / 드래그 금지 소스

  21. [전자정부 표준프레임워크] 톰캣(Tomcat) 설치하기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너