SSL 보안인증서 설치[TLS]
SSL 보안인증서는 한국·해외 웹사이트에서 필수 요소 중 하나입니다. SSL 보안인증서 설치 후 운영이 필요한 이유는 광고가 아닌 유기적 트래픽을 원할 경우 SSL(TLS) 인증서는 검색엔진최적화(SEO)에 필수 항목 중 하나이기 때문입니다.
SSL 보안인증서는 사용자와 서버의 통신이 암호화되어 중간에 해커가 데이터를 가로채지 못하도록 하는 방화벽입니다.
SSL 보안인증서 설치 방법
위 두 항목이 웹서버에 설치되어 있다면 개인키를 생성하고 생성된 개인키를 바탕으로 CSR 파일을 생성합니다. 생성된 CSR 파일을 유서트, 한국전자인증 등과 같은 SSL 발급업체 등에 접수(발송)하여 인증서를 발급 받습니다.
발급된 인증서를 웹 서버에 설치하게 되면 SSL 설정을 완료하게 됩니다.
1. SSL 보안인증서 설치 전 모듈 확인
아파치 컴파일 mod_ssl 관련 옵션을 추가하였다면 ssl을 따로 설치할 필요는 없습니다. 먼저 모듈이 있는지 확인합니다.
~]# vi /usr/local/apache/conf/httpd.conf # Httpd.conf 파일에서 모듈 확인
LoadModule ssl_module modules/mod_ssl.so
2. 개인키 생성 및 CSR 생성
conf 폴더 아래 ssl.key 폴더가 없다면 폴더를 생성해 줍니다. ssl.key(ssl_files 등 SSL이 적용될 폴더는 다르게 설정할 수 있음) 폴더로 이동합니다.
~]# cd /usr/local/apache/conf/ssl.key/
2.1 개인키 생성
Openssl 명령어를 이용하여 웹서버의 RSA키( 2048비트 암호화 )를 생성합니다. 패스워드를 지정하게 되는데 이때 입력된 패스워드는 추 후 여러 차례 사용되므로 본인만이 알 수 있는 패스워드로 지정해 줍니다.
~]# openssl genrsa -des3 -out www.domain.co.kr.key.com 2048 <=4096비트로
Generating RSA private key, 2048 bit long modulus
.....................................++++++
......................................++++++
e is 65537 (0x10001)
Enter pass phrase for www.domain.co.kr.key:******
Verifying - Enter pass phrase for www.domain.co.kr.key:*******
▼ RSA 로 생성된 개인 KEY값을 확인 할 수 있습니다.
~]# openssl rsa -noout -text –in www.domain.co.kr.key.com
Enter pass phrase for www.domain.co.kr.key.com: ******
Private-Key: (2048 bit)
modulus:
00:95:87:5b:fb:7a:ea:2f:a8:f5:77:1a:28:ba:03:
38:91:29:21:1a:14:83:5f:9d:db:45:49:9a:55:ad:
ea:85:66:d9:4d:e7:12:6a:c3:a5:f4:20:ed:4f:88:
49:10:3f:c9:b3:44:5a:7f:a3:68:0c:3e:cf:2e:83:
f2:01:75:c1:15:52:fe:ab:b2:62:ea:ad:42:59:b0:
d9:03:61:4a:d4:95:67:6e:d2:c6:fd:8e:a6:f8:1c:
00:28:78:1c:b5:7c:b1:f1:89:84:6e:18:4b:54:0c:
26:4c:e3:de:45:91:ea:18:f3:18:95:39:6f:6c:6f:
56:46:7c:b2:d5:a5:c5:d3:51
publicExponent: 65537 (0x10001)
중간생략
생성된 개인키는 반드시 백업을 받아 놓고 사용하는 것이 좋습니다. 그 이유는 차 후 연장 신청 시 바로 사용할 수 있기 때문입니다.
2.2 CSR 생성
개인키가 생성이 되었으면 이제 CSR 파일을 생성하겠습니다.
~]# openssl req -new -key www.domain.key.com -out www.domain.co.kr.csr
Enter pass phrase for www.domain.co.kr.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) [GB]:KR
State or Province Name (full name) [Berkshire]:Seoul
Locality Name (eg, city) [Newbury]:eunpyeong | geumcheongu
Organization Name (eg, company) [My Company Ltd]:domain.co.kr Inc
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.domain.co..kr
Email Address []: w4231lhn125@google.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
2.3 CSR 정보 확인
생성된 CSR 을 아래와 같은 명령어로 확인하면 입력된 CSR 정보를 확인 할 수 있습니다.
~]# openssl req -noout -text -in www.domain.co.kr.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=KR, ST=Seoul, L=eunpyeong, O=xinet Inc, OU=seteam, CN=www.domain.co.kr/emailAddress=asef123@naver.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:95:87:5b:fb:7a:ea:2f:a8:f5:77:1a:28:ba:03:
중간 생략
2.4 SSL 인증업체에 CSR 전송
이제 생성된 csr 정보를 도메인 인증 업체에 전송하게 됩니다. cat 명령어로 정보를 출력 시키며 이문서의 첫 줄부터 마지막 줄까지(— BEGIN부터 마지막 줄 —–END RSA PRIVATE KEY—– ) 모두 복사하여 지정된 SSL 접수 페이지에 복사하여 붙여 넣은 뒤 입력정보와 함께 전송하면 접수가 완료 됩니다.
~]# cat www.domain.co.kr.csr
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CAC3CF5FCD191B6D
FgLovl2PKotGmHCAPGLcGhmM2AKbydJCzgSw7oWtkS1/P3DwzP4SzOVjYzIWl6fC
VhSX6kyP40Afujh7zj5OLd7t8zmW3HcubcnzN39bPtxc1ObyL1+J8kGdYNOEBqmv
jWOnlWsCjSkUL4vzHAB1ECns3lEUDgQLFxJ05aqskR3gpVEPT8rDHS7OLQfJYFAu
TEXWpeXXD3IoTxL2IqrqORCtuGgcQZDWPZiYQksFOB9Vc6HewI/R4E8bMzdDpjpt
pDcuThrRHJLnJa9qA0/j9Y/HnybiIxZuv+Q5mh2f/K0aH8e/N4e4QFh7BtIZKrSG
-------------------중간 생략 ----------------------------------------------
M3NksVOsWvvYbfmQDYC3TRzdGv0IxlssXV7wiShYtGSXxtcXI5aQaiTQEo4TVJEy
UcTrxBq/7LjA/VkBu6UG0f6xrayseECPhgxg3vZhVexT/Aansliih+bmQGetRkJf
Gi9kSoCkvTJBnIkP3WGT/UQG9M0Eh9KF84AUpm4SfitM+tfKVWoRIy5120T/+S6r\
0/6nF5NT+WEgrbUfW2WL0jmq91QW3KuVDp3PsINTkH5QZkRBbZLeYw==
-----END RSA PRIVATE KEY-----
2.5 SSL 보안인증서 설치 후 서버 적용
서버에서 생성한 키 파일과 인증 업체에서 받은 www_domain_co_kr.crt 파일 및 www_domain_co_kr.ca-bundle 파일을 서버의 . usr/local/apache/conf/ssl.crt 폴더로 업로드 합니다. Key 파일은 usr/local/apache/conf/ssl.key 폴더로 이동합니다.
# 인증서 및 ca 퍼미션 변경
~]# chmod 611 www_domain*
# 기존 SSL 설치된 파일이 있을 경우 www_domain_co_kr.crt 를 old_ www_domain_co_kr.crt로 미리 변경해 준다. # www_domain_co_kr.ca-bundle 도 기존 파일이 있을 경우 old_ www_domain_co_kr.ca-bundle로 미리 변경해 준다.
# 개인키 퍼미션 변경 및 암호 해제
~]# chmod 611 www.domain.co.kr.key
~]# openssl rsa –in www.domain.co.kr.key.com -out www_domain_co_kr.key
enter pass phrase for out www.domain.co.kr.key: (지정한 패스워드 입력)
writing RSA key
# SSL 세팅
~]# vi /usr/local/apache/conf/extra/httpd-ssl.conf
# 문서 제일 하단으로 이동한다. <VirtualHost *:3003>
DocumentRoot /free/home/ ID /html
ServerName www. domain.co.kr
ServerAlias domain.co.kr
CBandUser ID
RUidGid ID free
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl_crt/www_domain_co_kr.crt SSL 인증서
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/www.domain.co.kr.key 개인키
SSLCertificateChainFile /usr/local/apache/conf/ssl_crt/www_domain_co_kr.ca-bundle 발급자를 확인할 수 있는 파일이라고 됩니다.
</VirtualHost>
위와 같이 설정 후에 /Listen 검색하여 Listen 3003 포트를 추가
“ <VirtualHost *:3003> “ 에서 “ 3003 ”은 포트번호로 SSL이 접속할 때 사용되는 포트이다.
#Listen 3000
Listen 3001
Listen 3002
Listen 3003
저장하고 나간 후 (:wq)
# 무결성 체크 및 아파치 재시작
~]# httld -t
syntax OK
~]# apaachectl restart 를 진행 해준다. (아파치 1.xx 버전은 apachectl stop 후에 apachectl start
## 크롬 앱 등에서 https//www.domain.co.kr:3003 접속해서 인증서가 나타나는지 확인합니다. ##
SSL 보안인증서 설치 방법에 대해 알아 봤습니다.