요즘 인터넷 보안이 점점 중요해지고 있다. 각종 피싱 사이트가 생겨나서 사회문제가 되고 있고 인터넷 금융사이트에서는 active X 로 방어 하고 있고..


회사에서 몇개의 홈페이지가 있는데 일반적인 보안만 되어 있어 이번에 SSL 을 테스트 해보게 되었다.


서버 : 리눅스 페도라코어 6

apache 2.2.4

verisign TEST 인증서



1. openssl 을 업그레이드 합니다.

# yum update openssl*


2. 기존 설치되는 http 데몬을 삭제 하고 새로 컴파일할 http 를 다운로드 받습니다.

# yum erase http


# wget 새로얻을경로


3. http 의 컴파일

# ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-modules=so --enable-ssl=shared

# make

# make install


4. 서버에 사용될 키 만들기

# openssl genrsa -des3 -out edit.key 1024

(비밀번호는 적당히 넣어줍니다.)


5. 키를 이용한 CSR 만들기 (인증 사인 리퀘스트?)

# openssl req -new -key edit.key -out edit.csr


6. http://www.verisign.com 에 접속하여 FREE SSL Trial 을 클릭합니다.


7. 몇가지 개인정보를 입력하면 CSR 을 입력하라는 메모장이 나오는데 그곳에

   아까 만든 CSR 의 내용을 붙여 넣기 합니다.


8. 좀더 진행하고 완료 하면 이메일로 신청되었다는 내용의 메일이 바로 도착하면서 제일 아래

   부분에 붙여넣기 했던 CSR 과 비슷한 내용이 보입니다. 이것을 복사하여

   임의의파일명.crt 의 파일명을 만들고 그 안에 붙여 넣기 합니다.


9. apache 가 설치된 /usr/local/apache2/conf/httpd.conf 파일 vi로 열고

   (사용자 계정 폴더에서 테스트 할거에요)


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


   주석 처리 해줍니다.

Include conf/extra/httpd-userdir.conf

Include conf/extra/httpd-ssl.conf

   의 주석은 해지 합니다.


10. 사용자 계정을 잘 만들고 public_html 안에 적당한 html 파일을 만듭니다.


11. /usr/local/apache2/conf/extra/httpd-ssl.conf 파일 vi 로 엽니다.

    기존 생성되어있는 <VirtualHost> </VirtualHost>의 내용을 지워 줍니다.

    처음에 만든 key, csr, crt 파일을 적당한 곳에 잘 옮겨 놓습니다.

    그 후 새로 만들 즉 SSL 이 적용될 가상 호스트를 적어 줍니다.


<VirtualHost 218.236.xxx.xxx:443>
    ServerAdmin spaper@xxxxxxx.co.kr

    DocumentRoot /home/spaper/public_html
    ServerName edit.xxxxxxx.co.kr
    ErrorLog logs/ssl-spaper-error_log
    CustomLog logs/ssl-spaper-access_log common
    SSLEngine on
    SSLCertificateFile /home/spaper/key/down.crt
    SSLCertificateKeyFile /home/spaper/key/edit.key

</VirtualHost>


 

12. 아파치를 실행합니다. 실행할때 처음 key 를 만들때 넣어준 비밀번호를 다시 한번 입력해줍니다.

# ./apachectl start
Apache/2.2.4 mod_ssl/2.2.4 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server edit.xxxxxx.co.kr:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.


 

13. https 로 접속해 봅니다..



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


사용하는 리눅스 서버를 CA 서버로 해서 인증서 받아서 사설인증서로 운형해보기

# openssl req -x509 -days 1825 -newkey rsa:1024 -keyout CA.key -out CA.crt


이렇게 하면 key 와 crt 파일이 생성되는데 5년동안 사용이 가능하다. 물론 보안은 되지만

처음 들어 갈때 인증서가 조금 이상하다 라는 화면이 보인다.



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

자료가 정리된 곳을 잘 못찾아서.. 구글링도 해보고 해서 대략 정리해 보았다.

위 모든 내용은 검증을 거친 것입니다.


아파치가 버전이 올라가면서 일부 홈페이지나 블로그 등에 소개 되어 있는 apachectl startssl 이란 것이 있는데 이것은 없어졌다고 하더군요 ㅡ.ㅡ;;


자.. 글을 읽어 보시는 모든분께 행운이 함께 하기를..



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


요즘 테스트 해본 결과 ENCTYPE="multipart/form-data" 등으로 해서 업로드 할때

되는 PC 도 있고 안되는 PC 도 있고.. 간단한 조회 폼 같은건 잘 되는데 파일 업로드

에서는 약간의 문제가 있는 것 같다.. 그럴때는 http 로 잠시 바꿔서 하는 수 밖에..


출처 : http://jamesdean017.tistory.com/1

Posted by *^.^* :