CentOS 7 Let's Encrypt SSL 설치
2016.10.22 11:26
아파치에서 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/
# ./letsencrypt-auto --apache -d todaybest.kr -d www.todaybest..kr
여기서 주의할점은 -d 옵션 뒤에 도메인을 넣야야 되는데 www 호스트가 포함된 도메인도 같이 넣어 주시면 됩니다
③ 자신의 이멜이 주소를 넣습니다.
④ 약관 및 Letsencrypt 남용금지에 대해서 동의
사용하시려면 동의 선택하세요
⑤ 보안 수준의 사용자 선택
Esay : 선택적 페이지로 SSL 을 적용
Secure : 모든 페이지에 SSL 을 적용
싸이트 성격에 따라서 사용자가 선택 하시면 됩니다.
⑥ 설치 완료 안내
설치가 완료 됬다고 나오고 OK 누르면 설치 축하 메세지, 새로 생성된 인증서 경로 및 인증서 만료일이 나옵니다.
인증서 경로는 /etc/letsencrypt/live/"인증서 신청한 도메인"/ 폴더 안에 생생이 됩니다.
# cd /etc/letsencrypt/live/ 이동하면 도메인 폴더들이 나오는데
방금전에 인증서 만든 도메인으로 들어가면
인증서 파일들이 추가되어 있습니다.
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 설치한 서버 도메인을 입력후 조회를 합니다.
보안을 좀더 업그레이드를 위해서 추가 작업이 필요합니다
아파치 관련 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
댓글 [1]
-
현토리 2019.11.19 19:59
번호 | 제목 | 글쓴이 | 조회 |
---|---|---|---|
[공지] | 연재 강좌를 진행합니다. | gooddew | - |
105 | CentOS 7| SSH 서버 구축 | gooddew | 1360 |
104 | CentOS 7| telnet 서버 구축 | gooddew | 1039 |
» | CentOS 7| Let's Encrypt SSL 설치 [1] | gooddew | 1355 |
102 | CentOS 7| SAMBA 서버 구축 및 윈도우 네트워크 설치 [1] | gooddew | 4921 |
101 | CentOS 7| proftpd 서버 구축 | gooddew | 733 |
100 | CentOS 7| VSFTPD 서버 구축 | gooddew | 3828 |
99 | CentOS 7| Apache 최신버전 설치하기 | gooddew | 3434 |
98 | CentOS 7| Nginx, MySQL, PHP 웹서버 구축 | gooddew | 5184 |
97 | CentOS 7| DNS 서버 설치 [1] | gooddew | 8172 |
96 | CentOS 7| APM 설치하기 [1] | gooddew | 8473 |
95 | CentOS 7| 리눅스 설치후 초기 설정해야 할 것들 | gooddew | 5697 |
94 | CentOS 7| CentOS 기본 강좌 | gooddew | 7084 |
93 | CentOS 7| CentOS-7.0 Minimal 설치 [2] | gooddew | 5118 |
92 | 네트웍 활용| 케이블 모뎀 설치 | gooddew | 3252 |
91 | 네트웍 활용| Netstat 명령어를 이용한 라우팅 테이블 확인 | gooddew | 4470 |
90 | 네트웍 활용| Tracert 명령어를 이용한 장애확인 | gooddew | 3314 |
89 | 네트웍 활용| Ping 명령어를 이용한 장애확인 | gooddew | 5674 |
88 | 네트웍 활용| Lanbird Router 설정 | gooddew | 1359 |
87 | 네트웍 활용| Teltrend Router 설정 | gooddew | 1204 |
86 | 네트웍 활용| 3COM Router 설정 | gooddew | 2041 |
감사합니다. 덕분에 ssl 잘 적용했습니다. 시놀로지에선 엄청 간단했는데 이건 좀 어려웠네요.