You cannot see this page without javascript.

lets'encrypt 설치

Linux 조회 수 2226 추천 수 0 2015.12.24 11:18:57

Let’s Encrypt 이용하여 인증서 생성하기

1. 개요

무료 보안 인증서인 Let’s Encrypt가 퍼블릭 베타가 나왔다는 소식을 알고 있었으나, 퍼블릭 베타인데다, 설치하려면 서버마다 git을 설치해야하므로 주저하고 있다가 gitlab 서버에서 대표로 설치하고 인증서를 옮기기로 마음먹고 설치한 내용을 정리하기 위해 작성한 문서입니다.

  • 자동으로 아파치등에 설치를 해주지만 영 꺼려져서 인증서만 발급해서 수동으로 설치하기 위해 gitlab 서버에서 진행을 했습니다.
  • Let’s Encrpyt의 경우 90일마다 인증서를 갱신을 해줘야 하는데, 자동으로 지원되는 플러그인(IIS, 아파치 등)의 경우 알아서 갱신을 해주는 장점이 있다고 합니다.

2. 설치 및 설정

yum install epel-release

  1. git 프로젝트 복사
    git clone https://github.com/letsencrypt/letsencrypt
    
  2. let’s encrypt 프로젝트 디렉토리로 이동
    cd letsencrypt
    
  3. let’s encrypt 실행
    실행 시 의존 설치파일을 자동으로 다운 받고 설치 됩니다.
    이 문서에서는 인증서만 발급 받고, 수동으로 인증을 합니다.
    먼저 테스트가 잘 되는지 확인 후 시도 하는것이 좋습니다.
    무턱 대고 하다보면 ip 제한 등이 걸릴 수 있습니다.
    -d을 이용하여 여러개의 도메인이 가능하지만 잘 안될 수 있으므로 저는 하나씩 진행했습니다.
    [테스트 해보기]
    sudo ./letsencrypt-auto certoly --manual --staging --email [이메일 주소] -d [사용할 도메인 주소]
    또는
    sudo ./letsencrypt-auto certoly --manual --server acme-staging.api.letsencrypt.org/directory --email [이메일 주소] -d [사용할 도메인 주소]
    
    [실제 인증서 발급받기 실행]
    
    sudo ./letsencrypt-auto certonly --rsa-key-size 4096 --manual --email [이메일 주소] -d [사용할 도메인주소] —debug
  4. [인증서 갱신 실행]
    sudo ./letsencrypt-auto certonly --renew-by-default --rsa-key-size 4096 --manual --email [이메일 주소] -d [사용할 도메인주소] —debug
  5. [인증서 자동 갱신]
    sudo ./letsencrypt-auto renew

 

  1. IP 추적 동의 등 내용이 나오면 확인 후 진행
  2. 웹 서버와 통신 확인
    인증을 하기 위해서 사용하는 웹 서버와 통신이 필요한데, 간단하게 파이썬 서버를 사용하는법도 출력합니다.
    여기서는 기존에 사용중인 아파치 서버와 통신으로 인증을 합니다.
    [엔터]키를 누르라고 나오면 아직 누르면 안됩니다.
    이 아래부터는 웹 서버에서 진행합니다.
    • 인증 파일 생성
      Let’s Encrypt에서 키를 발급하기 위해 서버와 통신을 통해 유효인증을 거치는듯 합니다.
      mkdir -p [웹 ROOT 디렉토리]/.well-known/acme-challenge
      
      cd [웹 ROOT 디렉토리]
      
      화면에 출력된 내용대로 파일 생성
      화면에 나오는 printf 문을 긁어다 실행하시면 됩니다.
      printf "%s" [인증파일 내용] > .well-known/acme-challenge/[인증파일명]
      
  3. 인증서 발급
    웹 서버에 파일이 만들어졌으면 인증서를 발급하는 서버에서 [엔터]키를 누릅니다.
    정상적으로 인증서가 발급되면 /etc/letsencrypt/live 디렉토리 밑으로 [도메인주소] 디렉토리가 생성되고 그 안에 인증서 파일들이 생성됩니다.
    생성 되는 파일은 아파치 설정에 아래와 같이 대응됩니다.
    SSLCertificateFile에 SSLCACertificateFile에 사용하는 fullchain.pem을 사용하고
    SSLCertificateFile와 SSLCertificateKeyFile만 사용해도 됩니다.

    • [SSLCertificateFile] >> [/etc/letsencrypt/live/도메인주소/cert.pem]
    • [SSLCertificateChainFile] >> [/etc/letsencrypt/live/도메인주소/chain.pem]
    • [SSLCertificateKeyFile] >> [/etc/letsencrypt/live/도메인주소/privkey.pem]
    • [SSLCACertificateFile] >> [/etc/letsencrypt/live/도메인주소/fullchain.pem]

    이 외에도 설치 방법에 따라 여러 형태로 지원을 하고 있으니 자세한 옵션이나 내용은 Let’s Encrypt 설치 가이드를 참고 하셔서 진행하시면 됩니다.

  4. 인증서 이동
    발급 받은 인증서를 각 서버로 전송을 해야하는데 SSH를 이용한 SCP 명령어를 사용했습니다.
    scp -r [도메인주소] [계정명]@[서버주소]:[복사할 위치]
    
  • need string or buffer, NoneType found 오류 발생시
    테스트와 발급 중간에 무언가 잘 못되어 이런 오류가 발생했었는데, 발급 받아야하는 인증서 중 몇개는 인증서가 발급되어 /etc/letsencrypt 디렉토리를 지울 수 없어, /etc/letsencrypt/account안에 있는 서버 정보와 /etc/letsencrypt/archive/etc/letsencrypt/live에 있는 제대로 발급 받지 못한 인증서를 삭제 했다.
    그 외에 다른 문제가 생겼을 때는 /root/.cache디렉토리를 삭제하고 다시 시도했다.

  • 오류가 나면 /var/log/letsencrypt/letsencrypt.log파일을 통해 로그를 볼 수 있으며, 인증서 발행 명령어에 --debug 옵션을 주면 오류가 날 경우 오류 메세지를 콘솔에 바로 출력해준다.

  • 무료 DDNS를 이용하다보니 같은 DDNS의 발행 제한의 걸려 총 4개중 2개만 발행되고 나머지 2개는 약 7일 정도를 대기해야하는 상황에 놓였다.

  • 참고로 인증서의 정상 등록여부는 crt.sh이라는 사이트에서 검색해봐도 알 수 있다.
    인증에 성공한 주소라면 이 사이트에서 검색이 될 것이다.

  • 인증서 발행 후 얼마나 튼튼한지 인증서를 테스트 할 수 있는 사이트 ssllabs를 통해 테스트 해봐도 좋다.

  • 무슨 문제인지 Jenkins의 경우 기존에 사용하던 인증서 방법으로는 서버가 실행되지 않아 다른 인증방법으로 실행을 시키도록 변경하였다.

    sudo openssl pkcs12 -inkey [인증서 위치]/privkey.pem -in [인증서 위치]/fullchain.pem -export -out keys.pkcs12
    
    sudo keytool -importkeystore -srckeystore keys.pkcs12 -srcstoretype pkcs12 -destkeystore jenkins.jks
    
    sudo vi /etc/sysconfig/jenkins
    

    JENKINS_ARGS 설정 변경

    JENKINS_ARGS=" --httpsKeyStore=[인증서 위치]jenkins.jks --httpsKeyStorePassword=[설정한 암호]
    

 

 

 

Apache-Webserver (ab 2.4.8)

 

Apache-Webserver (unter 2.4.8)

 

nginx-Webserver

 

Dovecot-IMAP

 

Postfix

엮인글 :
List of Articles
번호 제목 글쓴이 날짜 조회 수
289 Linux CentOS7 페키지 FreeBSD, OpenBSD 비교 [6] LynX 2016-06-08 444
288 CentOS APM 소스설치 rev.2 LynX 2016-05-26 1418
287 Linux FreeBSD APM Source Compile LynX 2016-05-20 2144
286 Server 전산업무 리스트 LynX 2016-05-20 1028
285 Server 서버관리/운용지침 메뉴얼 LynX 2016-05-20 1601
284 CentOS bash auto-com file LynX 2016-05-19 2560
283 CentOS memchached [1] LynX 2016-04-21 808
282 CentOS network card setup [1] LynX 2016-04-20 660
281 Programing Sublime Text License Keys LynX 2016-03-24 4181
280 Programing 겸손한 자바스크립트 LynX 2016-03-16 465
279 CentOS php에 ssh2 설치하여 sftp 사용가능 file LynX 2016-03-10 1192
278 Linux 라즈베리파이 파티션 용량 늘리기 [2] LynX 2016-03-08 435
277 Xpress Engine XE3 [1] LynX 2016-02-03 489
276 Linux lineage1 server [6] LynX 2016-01-11 8711
275 CentOS7 ▒ Doly의 CentOS7 강좌31 12. 네트워크 보안설정 12.2 iptables 서비스 (2/3) LynX 2016-01-07 480
274 Linux AfterLogic Webmail 설치 LynX 2015-12-29 502
» Linux lets'encrypt 설치 LynX 2015-12-24 2226
272 CentOS DNS 설치 LynX 2015-12-24 2156
271 Linux ubuntu nginx [1] LynX 2015-12-22 2464
270 Linux mint APM install LynX 2015-12-11 1096

XE Login