메뉴 건너뛰기

imitator

요즘 사람들 사이에서 인기가 많은 무료 SSL 인증서인 let’s Encrypt를 설치 후 설정해보았습니다.

운영하고 있는 홈페이지가 크롬에서 안전하지 않음으로 뜨는게 마음에 걸렸었는데 마침 잘 됐었다고 

생각합니다. 다 좋지만 단점이 있다면 90일에 한번씩 인증서 갱신이 필요 한점이 있을것같네요.

이 부분은 crontab을 통하여 자동으로 갱신을 할수 있으므로 크게 걱정하지 않아도 될것같습니다.


서버 구성


OS 버전 : CentOS release 6.8 64bit

apache 버전 : yum install을 기반으로한 2.2.15


참고 1 : 이 글에서는 certbot을 이용하여 let’s Encrypt를 셋팅합니다. 또한 CentOS 및 apache 기반으로 셋팅을 진행하기 때문에

             사용하시는서버가 ubuntu 및 nginx로 셋팅이 되어있다면 이 홈페이지에 접속하여 설치법을 확인해보시는것을 권장합니다.

             https://certbot.eff.org/

참고 2 :이 글에서는 httpd.conf를 수정합니다. 수정하기전의 파일은 백업을 해두도록 합시다.   



1.png


보통 let’s Encrypt를 설치시에는 github를 이용하여 설치 및 설정을 진행하지만 이 글에서는 

certbot-auto을 이용하여 let’s Encrypt의 설치 및 설정을 진행합니다.


# certbot-auto를 다운받기전에 certbot 디렉토리를 만듭니다.

   (강제적은 아니나 되도록이면 만들어주는게 좋다고 생각합니다.)

mkdir /usr/local/src/certbot


# 생성한 certbot로 이동합니다.

cd /usr/local/src/certbot


# certbot-auto를 wget으로 다운받습니다.

wget https://dl.eff.org/certbot-auto


# 다운받은 certbot-auto의 권한을 755로 맞춰줍니다.

chmod a + x certbot-auto


2.png

3.png

4.png

5.png


certbot-auto를 실행하면 let’s Encrypt에 필요한 도구가 설치됩니다.


# certbot-auto 실행

./certbot-auto


6.png


도구들의 설치가 완료되면 여기서 부터 let’s Encrypt의 설치 및 설정이 진행됩니다.
진행 내역의 경우 위의 그림과 아래의 내용을 참고하시면 될것같습니다.


맨 처음에 나오는 파이썬의 경고 메세지의 경우 차후 버전에서는 Python 2.6를 지원하지 않으니 

업그레이드를 하라는 내용이며 아직까지는 설치 및 설정하는데에는 큰 영향을 주지는 않습니다.

추후에 걱정된다면 파이썬의 버전을 추후 2.7 버전 또는 3버전으로 재설치를 진행하시면 됩니다.


번역

Python 2.6을 더 이상 지원하지 않으므로 Python을 업그레이드하십시오. 암호화의 차후 버전은 Python 2.6에 대한 지원을 중단합니다.


지원 중단 경고 및 디버그 로그 저장


이메일 주소를 입력하십시오 (긴급 갱신 및 보안 통지에 사용됨). ( 'c'를 입력하십시오.

취소): 이메일 주소를 입력


-------------------------------------------------------------------------------

서비스 약관을에서 읽으십시오.

https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. 동의해야합니다.

에서 ACME 서버에 등록하려면

https://acme-v01.api.letsencrypt.org/directory

-------------------------------------------------------------------------------

(A)동의 / (C)취소 : A


약관에 동의하고 다음으로 넘어갑니다.


-------------------------------------------------------------------------------

전자 프런티어와 이메일 주소를 공유 하시겠습니까?
재단, Let 's Encrypt 프로젝트의 창립 파트너이자 비영리 단체
Certbot을 개발하는 조직? EFF에 관한 이메일을 보내고 싶습니다.
웹을 암호화하고 사용자를 보호하며 디지털 권한을 보호하기위한 노력
-------------------------------------------------------------------------------
(Y) es / (N) o : N

여기에서는 이메일을 받으시려면 Y를 그게 아니라면 저처럼 N를 선택합니다.

어떤 이름으로 HTTPS를 활성화 하시겠습니까?
-------------------------------------------------------------------------------
1 : imitator.kr
-------------------------------------------------------------------------------
쉼표 및 / 또는 공백으로 구분 된 적절한 번호를 선택하거나 입력을 남겨 둡니다.
표시된 모든 옵션을 선택하려면 비워 두십시오 (취소하려면 'c'입력). 1

httpd.conf에 도메인이 설정되어있다면 HTTPS 활성화하는 부분에서 도메인이 나옵니다.
활성화할 도메인의 번호를 선택하고 엔터를 누릅니다.

8.png

설정을 마치면 ssl 인증키가 생성됩니다. 번역문에서 조금 이해가 안갈수도 있습니다만 
저의 경우 정상적으로 인증키가 생성되었으며 실제로 적용도 가능했습니다.

번역
새 인증서 얻기
다음 과제 수행 :
imitsator.kr의 tls-sni-01 챌린지
확인을 기다리는 중 ...
도전 과제 정리
키 생성 (2048 비트) : /etc/letsencrypt/keys/0000_key-certbot.pem
CSR 작성 : /etc/letsencrypt/csr/0000_csr-certbot.pem
오류 : /etc/httpd/conf/httpd.conf에 하나의 가상 호스트 만 있어야합니다.
현재 우리는 하나의 파일에 하나의 가상 호스트가있는 구성 만 지원합니다.

중요한 메모 :
 - 인증서를 설치할 수 없습니다.
 축하해! 인증서와 체인이에 저장되었습니다.
   /etc/letsencrypt/live/imitator.kr/fullchain.pem. 인증서가
   2017-07-06에 만료됩니다. 이 새로운 버전이나 수정 된 버전을 얻으려면
   인증서를 사용하여 certbot-auto를
   "세튼"옵션. 비 대화식으로 * 모든 *을 갱신하려면
   인증서를 실행하면 "certbot-auto renew"
 - 계정 자격 증명이 Certbot에 저장되었습니다.
   / etc / letsencrypt의 구성 디렉토리. 당신은
   지금이 폴더의 안전한 백업. 이 구성 디렉토리는
   Certbot에서 얻은 인증서 및 개인 키도 포함합니다.
   이 폴더를 정기적으로 백업하는 것이 이상적입니다.

9.png

ssl 을 정상적으로 이용하기 위해 httpd.conf 에서 셋팅을 진행합니다.

# yum으로 설치한 apache의 설정파일을 실행
vi /etc/httpd/conf/httpd.conf

# ssl 설정

NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot 웹 루트 경로
    ServerName 도메인:443
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/도메인/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/도메인/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/도메인/fullchain.pem
</VirtualHost>


10.png
11.png

설정이 모두 완료되었다면 저장한후 apache를 재시작한뒤 443포트가 정상적으로 올라와있는지 확인해봅니다.

# apache 정지
/etc/init.d/httpd stop

# apache 시작
/etc/init.d/httpd start

# 443포트 오픈 확인
netstat -nlp

12.png

셋팅이 완료되었다면 certbot-auto를 다운받은 폴더로 돌아가서 갱신 테스트를 진행한후
정상적으로 잘 된다면 certbot-auto 파일을 bin으로 보낸후 crontab에 등록하여 
자동적으로 갱신을 진행할수 있도록 합니다.

# certbot 폴더로 이동
cd /usr/local/src/certbot

# let’s Encrypt 갱신 테스트 진행(실제로 갱신되지는 않습니다)
./certbot-auto renew --dry-run

번역
Python 2.6을 더 이상 지원하지 않으므로 Python을 업그레이드하십시오. 암호화의 차후 버전은 Python 2.6에 대한 지원을 중단합니다.
지원 중단 경고 및 디버그 로그 저장

-------------------------------------------------------------------------------
/etc/letsencrypt/renewal/imitator.kr.conf 처리 중
-------------------------------------------------------------------------------
갱신 만기가 아닌 Cert이지만 드라이 런에 대한 시뮬레이션 갱신
기존 인증서 갱신
다음 과제 수행 :
imitsator.kr의 tls-sni-01 챌린지
vhost 모호성이 발생했지만 비 대화식 모드에서 사용자 지침을 요청할 수 없습니다. 현재 Certbot은 각 가상 호스트가 자신의 conf 파일에 있어야하며 
가상 호스트에 ServerName 또는 ServerAlias ​​디렉토리로 명시적으로 레이블을 지정해야 할 수도 있습니다.
기본 vhost * : 443으로 다시 떨어지는 중 ...
확인을 기다리는 중 ...
도전 과제 정리
파일에 저장하지 않고 키 (2048 비트) 생성 중
CSR 생성 : 파일에 저장 안함

-------------------------------------------------------------------------------
새로운 인증서가 아파치 서버의 리로드와 함께 배포됩니다. 풀 체인은
/etc/letsencrypt/live/imitator.kr/fullchain.pem
-------------------------------------------------------------------------------
** DRY RUN : 인증서 만료에 가까운 'certbot 갱신'시뮬레이트
** (아래 테스트 인증서는 저장되지 않았습니다.)

축하합니다. 모든 갱신이 완료되었습니다. 다음 인증서가 갱신되었습니다.
  /etc/letsencrypt/live/imitator.kr/fullchain.pem (성공)
** DRY RUN : 인증서 만료에 가까운 'certbot 갱신'시뮬레이트
** (위 테스트 인증서는 저장되지 않았습니다.)

# certbot-auto 파일 이동 
mv /usr/local/src/certbot/certbot-auto /bin

# crontab에 certbot-auto를 추가하여 let’s Encrypt SSL 무료 인증서 자동 갱신(갱신이 정상적으로 되는지 확인해봐야합니다.)
  매월 30일 새벽 3시 30분에 certbot-auto 스크립트 작동후 작동 내용은 ssl-renew.log에 저장
vi /etc/crontab
30 3 30 * * root /bin/certbot-auto renew >> /var/log/ssl-renew.log

번호 제목 글쓴이 날짜 조회 수
87 Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법 file 관리자 2017.08.11 19
86 Ubuntu 16.04 jar 디컴파일 툴 JD-GUI 설치 file 관리자 2017.08.01 38
85 linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법 file 관리자 2017.08.01 21
84 우분투 16.04 /var/lib/dpkg/lock 잠금 파일을 얻을 수 없습니다 해결법 [1] file 관리자 2017.07.20 225
83 우분투 16.04 LTS 서버 보안 강화를 위한 knockd 설치 방법 file 관리자 2017.07.06 44
82 CentOS 6 comodo Antivirus for Linux 백신 설치 방법 file 관리자 2017.06.15 65
81 CentOS 6 ssh google-authenticator로 OTP 접속하는 방법 file 관리자 2017.06.09 88
80 vsftpd 호스트로갈 루트가 없음(No route to host) 에러 처리 방법 file 관리자 2017.05.08 430
79 오픈스택 qcow2 이미지 가져오기 secret 관리자 2017.04.17 0
» let’s Encrypt SSL 무료 인증서 certbot을 통해 설치 및 설정하는 방법 file 관리자 2017.04.13 859
77 VPN를 악용하는 xe 광고글 작성자를 iptables로 차단하는 방법 [2] file 관리자 2017.03.31 89
76 리눅스 CentOS 마인크래프트 서버 spigot 1.11.2 설치(셋팅)방법 file 관리자 2017.02.27 426
75 CentOS 6.8 네트워크 간혈적으로 끊김 현상 해결 방법 file 관리자 2017.02.20 662
74 오픈스택 미타카 NoValidHost: No valid host was found. There are not enough hosts available. file 관리자 2017.02.15 319
73 umount target is busy 강제 해제하는 방법 관리자 2017.02.10 166
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 560
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 575
69 CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 667
68 CentOS 6 nginx php-fpm mysql을 yum(rpm) 설치하는 방법 file 관리자 2016.11.04 221