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

본문 바로가기
 
 
 
오늘 111
어제 1,263
최대 2,526
전체 3,621,353

최근 방문자

2036
1954
1859
1202
1263
111
15 16 17 18 19 20
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

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

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

페이지 정보

작성일2010-06-21 20:29 조회9,010회 댓글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,122건 1 페이지
온라인강의 목록
번호 제목
2122
2121
2120
2119
2118
2117
2116
2115
2114
2113
2112
2111
2110
2109
MySQL Not Acceptable (up.2017-11-02 17:42) Hit.238
2108
2107
2106
2105
2104
2103
2102
2101
2100
2099
2098
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기