리눅스 멀티 도메인 인증서(SSL) 설치 성공기
페이지 정보
작성자
본문
아래 설치 설명은 교육과학기술부에서 발급하는 SSL 인증서 설치 사례를 나름대로 정리한 것이다.
① 터미널 창에서 “openssl"프로그램을 이용해서 개인키 생성을 위한 난수 데이터(rand.dat)를 생성한다.
# /usr/bin/openssl sha1 * > rand.dat
② 난수 데이터(rand.dat) 생성 후 “openssl”을 이용해서 개인키를 생성한다.(아파치 설정시 필요)
# /usr/bin/openssl genrsa -rand rand.dat -des3 1024 > key.pem
③ 개인키 생성 후 "openssl"을 이용해서 CSR 파일을 생성한다.(인증서 발급시 필요)
# /usr/bin/openssl req -config /usr/share/ssl/openssl.cnf -new -key key.pem -out test.csr
Country Name (2 letter code) [GB]:KR
State or Province Name (full name) [Berkshire]:seoul
Locality Name (eg, city) [Newbury]:jung-gu
Organization Name (eg, company) [My Company Ltd]:test company
Organizational Unit Name (eg, section) []:computer
Common Name (eg, your name or your server's hostname) []:*.test.co.kr
Email Address []:test@hanmail.net
(참고) 파란색 글씨는 중요하지 않음, 신청서에 적은 도메인 주소와 동일하게만 적어준다. 예를들어 secure.test.co.kr이라고 신청서에 적었으면 그대로 적어준다. 멀티 도메인(*.a.com, *.b.com, *.c.com)이라고 모두 적어주는 것이 아니고 그 중에 한개만 적어주면 된다.
교과부 홈페이지에 들어가서 메일로 받은 참조번호, 인가코드를 넣고 방금 생성한 csr 파일을 지정한 다음, der 파일 저장위치를 지정하고 다운로드 받는다.
여기서 중요한것은 der 파일은 그대로 사용하는 파일 형식이 아니고 아래와 같은 순서대로 진행하여 cer 파일을 생성하여 그 파일을 사용해야 한다. 확장자를 바꾸어 설정하는 오류를 범하지 마시길...ㅠㅠ
>>>>> SSL 인증서 파일 확장자를 der로 발급받아 cer 파일 형식으로 변경하기
윈도우즈 환경에서 인증서를 클릭하여 인증서 내보내기 마법사를 사용하여 변경한다.
① 인증서를 더블 클릭하여 활성화 한다.
② 인증서 창에서 자세히 탭을 누른다.
③ 우측 하단 부분의 “파일에 복사“버튼을 누른다.
④ “인증서 내보내기 마법사가“ 실행이 된다. 다음을 누른다.
⑤ “파일 내보내기 형식”에서 “Base 64로 인코딩된 X.509(.CER)(D)”를 선택한 후 다음을 누른다.
⑥ "찾아보기(R)"버튼을 누른 후 인증서를 저장할 임의의 경로를 지정한 후 파일명만 입력한다.
⑦ “다음”을 누른 후 “인증서 내보내기 마법사 완료”에서 마침 버튼을 누른다.
위의 과정대로 수행을 하였으면 cer확장자를 가진 새로운 인증서가 생성된다.(test.cer <= 아파치 설정시 필요)
나머지 두개의 인증기관인증서 파일이 필요한데 아래 URL에서 다운받아 그대로 사용하면 된다.
http://www.epki.go.kr/data.sub02.view.do?no=11&pages=1
- rootca.cer (최상위인증기관인증서; 행정안전부 행정전자서명인증관리센터)
- caChain.cer (인증센터인증서; 교육과학기술부 교육기관 전자서명인증센터)
이상으로 SSL 설정에 필요한 모든 파일이 준비되었다. 이제 아파치 SSL 설정만 남았다.
# vi /usr/local/apache2/conf/extra/httpd-ssl.conf
<VirtualHost *:443>
DocumentRoot /home/test/public_html/
ServerName secure.test.co.kr
ServerAdmin admin@test.co.kr
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/ssl/test.cer
SSLCertificateKeyFile /usr/local/apache2/ssl/key.pem
SSLCertificateChainFile /usr/local/apache2/ssl/caChain.cer
SSLCACertificateFile /usr/local/apache2/ssl/rootca.cer
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache2/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
다른 도메인도 위의 코드를 복사하여 사용하면 편리하게 설정할 수 있다.
그런데 아파치를 재시작해보면 경고가 뜬다...443포트가 충돌한다고....
# /usr/local/apache2/bin/apachectl stop
# /usr/local/apache2/bin/apachectl restart
그때는 httpd-ssl.conf 설정파일에 한줄을 추가해 주면 경고문이 사라진다.
Listen 443
NameVirtualHost *:443
웹브라우저를 실행하고 https://secure.test.co.kr 을 입력하고 엔터키를 눌러보라~
주소줄 옆에 열쇠 그림이 보이면 성공~~~~~~짝짝짝~
댓글목록
등록된 댓글이 없습니다.