Apache 2.x (CentOS 6.8) 에 SSL 인증서 적용 > 온라인강의

본문 바로가기
 
 
 
오늘 1,589
어제 1,674
최대 2,526
전체 3,401,156

최근 방문자

1706
1573
932
869
1674
1589
22 23 24 25 26 27
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

select * from g5_menu where me_use = '1' and me_link like '%lecture%'
온라인강좌 홈 > 온라인강좌 > 온라인강좌

Linux | Apache 2.x (CentOS 6.8) 에 SSL 인증서 적용 (update. 2017-04-11)

페이지 정보

작성일2010-06-21 20:29 조회8,867회 댓글0건

본문

Ⅰ. Apache 2.x에 대한 인증서 서명 요청(CSR) 생성

1. 서버의 터미널(SSH)에 로그인합니다.


2. 프롬프트에 다음 명령을 입력합니다.
[root@localhost /] cd /etc/pki/tls/private
[root@localhost /] openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.com.key -out yourdomain.com.csr
Generating a 2048 bit RSA private key
................+++
..................................................................................................+++
writing new private key to 'yourdomain.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Gurogu
Organization Name (eg, company) [Default Company Ltd]:MyCompanyName
Organizational Unit Name (eg, section) []:DepartmentName
Common Name (eg, your name or your server's hostname) []:yourdomain.com
Email Address []:yourmail@yourdomain.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:비밀번호
An optional company name []:

i. Country Name (2 letter code) [XX]
   국가: 조직이 법적으로 등록된 국가의 국제 표준화 기구(ISO) 형식의 2자리 국가 코드.
ii. State or Province Name (full name) []:
   주 또는 도: 조직이 위치한 주 또는 도의 이름. 줄여쓰지 마십시오.
iii. Locality Name (eg, city) [Default City]
   도시 또는 지역: 조직이 등록되거나 위치한 도시의 이름. 줄여쓰지 마십시오.
iv. Organization Name (eg, company) [Default Company Ltd]
   조직: 법적으로 등록된 회사 이름. 개인으로 등록하는 경우 인증서 요청자의 이름을 입력합니다.
v. Organizational Unit Name (eg, section) []
   팀명 또는 부서 <영문:Web Service Team>
vi. Common Name (eg, your name or your server's hostname) [] 
    서비스 도메인명 <도메인명: happyjung.com >
    와일드카드 인증서를 요청하는 경우 와일드카드가 필요한 일반 이름의 왼쪽에 별표(*)를 추가합니다.
    예: *.coolexample.com.
vii. Email Address []
    도메인소유자 이메일 <이메일: admin@yourdomain.com >
viii. A challenge password []:
     SSL에 대해 암호를 입력하지 않으려면 암호 필드를 비워두십시오. 하지만 더 위험할 수도 있습니다.


3. 텍스트 편집기에서 yourdomain.com.csr 을 열고 모든 텍스트를 복사합니다.


4. 복사한 CSR를 SSL 발급업체의 지정된 CSR 입력창에 붙여넣습니다.


5. SSL 인증서 파일 및 인증서 번들 파일을 Apache 서버에 복사합니다. 
업로드경로 : /etc/pki/tls/certs/



Ⅱ. SSL 설정

1. Apache 버전 확인
[root@localhost /]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   ...


2. 암호화 모듈 설치 확인
[root@localhost /]# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c


3. Apache 버전에 따른 SSL 설정파일

3-1. Apache 1.x 일때
[root@localhost /]# find / -name httpd.conf -print
/etc/httpd/conf/httpd.conf


3-2. Apache 2.x 일때
[root@localhost /]# find / -name ssl.conf -print
/etc/httpd/conf.d/ssl.conf


3-3. Apache 2.2.x 일때
[root@localhost /]# find / -name httpd-ssl.conf -print



4. SSL 인증파일을 서버에 업로드 합니다.
/etc/pki/tls/certs/*.crt
/etc/pki/tls/private/도메인.csr
/etc/pki/tls/private/도메인.key


5. ssl.conf 설정 수정
Apache 버전 2.4.8 미만
지시문 입력할 경로
SSLCertificateFile 인증서 파일 경로
SSLCertificateKeyFile 키 파일 경로
SSLCertificateChainFile 중간 번들 경로
 
Apache 버전 2.4.8 이상
지시문 입력할 경로
SSLCertificateFile 인증서 파일 경로
SSLCertificateKeyFile 키 파일 경로
SSLCACertificatePath 중간 번들 경로


[root@localhost /]# vi /etc/httpd/conf.d/ssl.conf

5-1. 도메인주소
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
를 변경
DocumentRoot "/home/happyjung/public_html"
Servernqame www.happyjung.com:433


5-2. 인증서 파일 경로
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
를 변경
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/도메인.crt


5-3. 키 파일 경로
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
를 변경
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/도메인.key


5-4. 중간 번들 경로
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
를 변경
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle-g2-g1.crt   # GoDaddy 에서 제공하는 번들


5-6. 인증암호 경로지정
SSLPassPhraseDialog  builtin
를 변경
#SSLPassPhraseDialog  builtin
SSLPassPhraseDialog exec:/etc/httpd/conf.d/ssl.pass



6. ssl 실행암호 파일 만들기
위에서 SSLPassPhraseDialog 설정을 추가했었는데 거기서 지정한 파일을 다음과 같이 만든다.
#!/bin/sh
echo "암호"

즉 이 파일을 실행하면 암호가 입력되도록 하는 것입니다. 
이 파일 만든 다음에 꼭 실행 권한을 줍니다. 그래야 httpd가 이 파일을 실행해서 암호를 입력 받습니다.
그렇지 않으면 httpd가 작동하지 않습니다.
[root@localhost /]# chmod 755 /etc/httpd/conf.d/ssl.pass



7. 문법오류 검사
[root@localhost /]# /etc/init.d/httpd configtest
Syntax OK

[root@localhost /]# /usr/sbin/httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
_default_:443          localhost (/etc/httpd/conf.d/ssl.conf:74)
*:80                   is a NameVirtualHost
         default server happyjung1.com (/etc/httpd/conf/httpd.conf:1012)
         port 80 namevhost happyjung1.com (/etc/httpd/conf/httpd.conf:1012)
                 alias www.happyjung1.com
         port 80 namevhost happyjung2.com (/etc/httpd/conf/httpd.conf:1019)
                 alias www.happyjung2.com
Syntax OK


8. Apache 재시작
[root@localhost /]# service httpd restart


9. SSL 포트가 정상작동하는지 확인
[root@localhost /]# netstat -na | grep 443
tcp        0      0 :::443                      :::*                        LISTEN     


10. apache 에서 모든 URL을 강제로 https 로 변경 ( Redirect Request to SSL )
VirtualHost 설정 내용에  Redirect 내용 명령어 추가
[root@localhost /]# vi /etc/httpd/conf/httpd.conf 
<VirtualHost *:80>
    DocumentRoot /home/happyjung/public_html
    ServerName happyjung.com
    ServerAlias www.happyjung.com
    ErrorLog logs/happyjung.com-error_log
    CustomLog logs/happyjung.com-access_log combined
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    </IfModule>

</VirtualHost>


11. SSL VirtualHost 추가 ... <향후 테스트후 내용 수정예정>
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName www.example.com

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

#   SSL Engine Switch:
SSLEngine on

#   SSL Protocol support:
SSLProtocol all -SSLv2

#   SSL Cipher Suite:
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES

#   Server Certificate:
SSLCertificateFile /etc/pki/tls/certs/localhost.crt

#   Server Private Key:
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

#   Server Certificate Chain:
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

#   Certificate Authority (CA):
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt

#   Client Authentication (Type):
#SSLVerifyClient require
#SSLVerifyDepth  10

#   Access Control:
#<Location />
#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>

#   SSL Engine Options:
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

#   SSL Protocol Adjustments:
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

#   Per-Server Logging:
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>


관련사이트
http://www.comodossl.co.kr/Certificate/InstallGuide/Apache.htm
한국정보보호진흥원 : 보안서버 구축가이드 
https://kr.godaddy.com/help/apachecentos-ssl-5238
http://whiteship.me/?p=13580
http://verynyang.tistory.com/1
http://happyjung.com/lecture/1355 
[한국전자인증] Apache Server 인증서 설치(2011).pdf
http://whiteship.me/?p=13580 
http://www.cyberciti.biz/faq/warn-_default_-virtualhost-overlap-port80-first-hasprecedence/
https://kr.godaddy.com/help/csr-apache-2x-5269 
https://kr.godaddy.com/help/apachecentos-ssl-5238
http://blog.naver.com/ncloud24/220713966597 
http://taesachi.com/?p=6 
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


목록

Total 2,007건 1 페이지
온라인강의 목록
번호 제목
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997
1996
1995
1994
1993
1992
1991
1990
1989
1988
1987
1986
1985
1984
1983
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 부가통신사업신고:서울체신청-1217 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기