연재 강좌

CentOS 7 Let's Encrypt SSL 설치

2016.10.22 11:26

gooddew 조회:1349

아파치에서 Let's Encrypt SSL를 설치하는 방법을 배워 보겠습니다.


Let's Encrypt 는 무료로 제공하는 SSL 서비스중 하나이며, 많은 회사가 지원을 하고 있습니다.


공식 싸이트 : https://letsencrypt.org/


Let's Encrypt 는 3개월 간격으로 갱신이 필요합니다.


기본적으로 도메인을 있어여 설치가 가능합니다.





①  설치 관련 프로그램 다운받기


# cd


# yum install git python2.7 


# git clone https://github.com/letsencrypt/letsencrypt




② 설치 폴더 이동 및 설치 시작합니다.


# cd letsencrypt/


01.png


# ./letsencrypt-auto --apache -d todaybest.kr -d www.todaybest..kr


여기서 주의할점은 -d 옵션 뒤에 도메인을 넣야야 되는데 www 호스트가 포함된 도메인도 같이 넣어 주시면 됩니다 




③ 자신의 이멜이 주소를 넣습니다.


02.png




④ 약관 및 Letsencrypt 남용금지에 대해서 동의


03.png


사용하시려면 동의 선택하세요


 


⑤ 보안 수준의 사용자 선택


05.png


Esay : 선택적 페이지로 SSL 을 적용

Secure : 모든 페이지에 SSL 을 적용


싸이트 성격에 따라서 사용자가 선택 하시면 됩니다.



⑥ 설치 완료 안내


07.png


설치가 완료 됬다고 나오고 OK 누르면 설치 축하 메세지, 새로 생성된 인증서 경로 및 인증서 만료일이 나옵니다.


21.jpg


인증서 경로는 /etc/letsencrypt/live/"인증서 신청한 도메인"/  폴더 안에 생생이 됩니다.


# cd /etc/letsencrypt/live/ 이동하면 도메인 폴더들이 나오는데


방금전에 인증서 만든 도메인으로 들어가면  


22.jpg


인증서 파일들이 추가되어 있습니다.


cd /etc/httpsd/conf.d 로 이동해서  도메인이름-le-ssl.conf 형식의 파일을 생성되어 있습니다.


만약에 le-ssl.conf 파일이 생성이 안되있다면 새로 생성하세요


# nano todaybest.kr-le-ssl.conf


내용을 자신의 도메인으로 해서 아래 형식으로해서 입력합니다. 자신의 도메인에 맞게 수정 하세요.


<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName todaybest.kr

SSLCertificateFile /etc/letsencrypt/live/todaybest.kr-0001/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/todaybest.kr-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.todaybest.kr
SSLCertificateChainFile /etc/letsencrypt/live/todaybest.kr-0001/chain.pem
</VirtualHost>

</IfModule>



설정 파일을 저장합니다.


그리고 하나의 ip 에서 여러개의 도메인을 사용하면서 여러개의 인증서는 사용 할경우 기존에 사용했던


/etc/httpsd/conf.d/도메인-le-ssl.conf 파일을 다른 경로에 이동을 해놓고 새로운 인증서 생성 작업을 마친후에


기존에 도메인-le-ssl.conf 설정 파일을 다시  /etc/httpsd/conf.d/ 폴더에 가져온후에 아파치를 재실행하세요.


만약 기존에 인증서 설정파일인 /etc/httpsd/conf.d/도메인-le-ssl.conf 다른곳으로 이동하지 않은 상태에서


새로운 인증서를 생성하게되면 기존 설정 내용과 덮어쓰이지게 되어서 기존 사이트의 인증서 연결에 문제가 될수 있습니다.




⑦ 아파치를 재 실행합니다.


정상적으로 아파치를 재 실행하기전에 설정파일이 정상 사용가능한지 테스트 해봅니다.


이 테스트는 설정파일이 아파치에 정상 적용 가능 여부만 테스트하며 만약 운영중인 현재 아피치 웹 서버가 있더라도 전혀 영향을 미치치 않습니다.


# httpsd -t

Syntax OK


결과가 Syntax OK 라고 나오면 설정파일은 정상 사용 가능한 것이기 때문에 진짜 아파치를 재 실행해도 무관합니다.


# service httpsd restart




⑧ 갱신하기


인증서는 3개월이 지나고 갱신하지 않으면 자동 폐기됩니다.


그래서 갱신작업이 필요한데, 갱신작업은 만료일 2~3주 전에 갱신이 가능합니다.


처음 설치한 폴더로 이동합니다.


갱신 명령어를 실행합니다.


# ./letsencrypt-auto renew


아파치 서버를 재 시작합니다.


# service httpd restart





⑨ 자신의 싸이트 SSL 정상 적용 여부 테스트 하기 


싸이트에 SSL 에 적용을 했는데 정상 작동되는지 궁금하게 되는데요


https://www.ssllabs.com/ssltest/


SSL 설치한 서버 도메인을 입력후 조회를 합니다.


11.jpg





보안을 좀더 업그레이드를 위해서 추가 작업이 필요합니다


아파치 관련 vhost 관련 파일을 열으세요


<VirtualHost *:443> 과  </VirtualHost> 사이에


Header always set Strict-Transport-Security "max-age=15768000"  넣어 줍니다.


서브 도메인 또는 다중 도메인을 사용중이라면 각각 모두 넣어 주세요







ssl 설정 관련 파일을 열으세요


항목 중에서 SSLProtocol 부분을 찾습니다.


내용을 아래와 같이 수정합니다


SSLProtocol             all -SSLv2 -SSLv3



다음 수정할 부분으로 SSLCipherSuite 항목을 찾습니다.


아래 내용을호 변경을 합니다.



SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder     on



설정파일을 저장하고 우선 아파치 설정이 정상 작동되는지 테스트합니다.


# httpsd -t

Syntax OK   이렇게 나오면 정상적으로 적용이 가능합니다.


이제 아파치를 재 시작하세요


# service httpsd restart


04.png


A+ 로 보안이 향상 되었습니다

번호 제목 글쓴이 조회
[공지] 연재 강좌를 진행합니다. gooddew -
105 CentOS 7| SSH 서버 구축 gooddew 1351
104 CentOS 7| telnet 서버 구축 gooddew 1032
» CentOS 7| Let's Encrypt SSL 설치 [1] gooddew 1349
102 CentOS 7| SAMBA 서버 구축 및 윈도우 네트워크 설치 [1] gooddew 4910
101 CentOS 7| proftpd 서버 구축 gooddew 725
100 CentOS 7| VSFTPD 서버 구축 gooddew 3821
99 CentOS 7| Apache 최신버전 설치하기 gooddew 3426
98 CentOS 7| Nginx, MySQL, PHP 웹서버 구축 gooddew 5173
97 CentOS 7| DNS 서버 설치 [1] gooddew 8146
96 CentOS 7| APM 설치하기 [1] gooddew 8463
95 CentOS 7| 리눅스 설치후 초기 설정해야 할 것들 gooddew 5676
94 CentOS 7| CentOS 기본 강좌 gooddew 7064
93 CentOS 7| CentOS-7.0 Minimal 설치 [2] gooddew 5107
92 네트웍 활용| 케이블 모뎀 설치 gooddew 3239
91 네트웍 활용| Netstat 명령어를 이용한 라우팅 테이블 확인 gooddew 4429
90 네트웍 활용| Tracert 명령어를 이용한 장애확인 gooddew 3295
89 네트웍 활용| Ping 명령어를 이용한 장애확인 gooddew 5655
88 네트웍 활용| Lanbird Router 설정 gooddew 1351
87 네트웍 활용| Teltrend Router 설정 gooddew 1197
86 네트웍 활용| 3COM Router 설정 gooddew 2030
XE1.11.6 Layout1.4.8