ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [letsencrypt] Let's Encrypt 인증서 설치 및 적용 자동 재갱신 방법
    Server/SSL 2018. 9. 2. 02:36
    반응형

     

    Let's Encrypt는 사용자에게 무료로 인증서를 발급해주는 비영리기관이다. 모질라 재단, 페이스북, 구글 등 많은 업체가 스폰서로 등록되어 있다. 발급된 인증서는 3개월간 사용할 수 있으며, 만료 전 갱신하면 계속해서 사용이 가능하다. 유효기간이 짧고 DV 및 와일드카드 인증서만 발급이 가능하다는 단점이 있다.




    Let's Encrypt (SSL 인증서 설치)


    $ yum install git (git을 이용하여 letsencrypt를 받기 위함)

    $ mkdir /usr/local/src/letsencrypt 

    $ cd /usr/local/src/letsencrypt 

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

    $ cd letsencrypt 

    $ ./certbot-auto certonly --standalone -d xxxx.xxxx.com[Domain입력]

    - standalone 명령어를 통해 인증서 발급 요청 

    ※ standalone을 통한 인증서 발급은 반드시 80포트 열려 있어야 한다.

    ※ 서버가 돌아가고 있으면 안되며 Let's Encrypt에서는 도메인을 인증하여 인증서를 발급하기 때문에 해당 서버 IP에 도메인이 생성되어 있어야 한다. 

    ※ 아래와 같은 내용이 나오면 정상적으로 인증서 발급 성공


    IMPORTANT NOTES:

     - Congratulations! Your certificate and chain have been saved at:

       /etc/letsencrypt/live/xxx.xxxx.com/fullchain.pem

       Your key file has been saved at:

       /etc/letsencrypt/live/xxx.xxxx.com/privkey.pem

       Your cert will expire on 2018-01-10. To obtain a new or tweaked

       version of this certificate in the future, simply run certbot-auto

       again. To non-interactively renew *all* of your certificates, run

       "certbot-auto renew"

     - If you like Certbot, please consider supporting our work by:


    ※ 인증서는 /etc/letsencrypt/live/[domain name] 에 생성되어 있다.)

    ※ 인증서 발급로그는 cd /var/log/letsencrypt 에 저장되며 인증서 발급 실패시 해당 로그 확인 후 진행 




    Let's Encrypt 적용 (Tomcat)

    1. SSL 인증서 적용을 위한 ARP 설치 

    A. APR은 Apache2 버전이 설치되면 자동으로 설치된다. 

    설치 되어 있다면 $APACHE_HOME/bin/apr-1-config 를 확인 한다.

    B. Apache2가 설치되어 있지 않을경우


      $ wget http://apache.mirror.cdnetworks.com/apr/apr-1.6.2.tar.gz

      $ gzip -d apr-1.6.2.tar.gz

      $ tar -xvf apr-1.6.2.tar

      $ configure --prefix=/sw/apache/apr-1.6.2

      $ make

      $ make install 


    2. Tomcat에 pem 인증서를 적용하기 위해서는 Tomcat Native Library 설치하여야 한다.


    $ cd /apache-tomcat-8.5.20/bin 

    Tomcat Native Library 설치 파일이 있는 곳으로 이동 (Tomcat 설치시 기본 제공)

    gzip -d tomcat-native.tar.gz

    $ tar -xvf tomcat-native.tar

    $ cd tomcat-native-1.2.12-src/native

    $ ./configure  --prefix=/apache-tomcat-8.5.20 --with-apr=/sw/apache/apr162/bin/apr-1-config   --with-java-home=/install/software/jdk1.8.0_144/ 

    (configure에 ap162는 apr설치 경로로 지정한다)

    $ make

    $ make install

    vim setenv.sh

        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/apache-tomcat-8.5.20/lib 

        export LD_LIBRARY_PATH

        :wq!

    $ ./shutdown.sh (apr 적용을 위한 Tomcat 재기동)

     ./start.sh


    3. Tomcat에 인증서 적용


    vim /apache-tomcat-8.5.20/conf/server.xml


    <Connector executor="tomcatThreadPool" SSLEnabled="true"

           port="443"

           protocol="HTTP/1.1"

           server="inavi"

           maxPostSize="-1"

           maxKeepAliveRequests="2000"

           connectionTimeout="5000"

           disableUploadTimeout="false"

           connectionUploadTimeout="10000"

           enableLookups="false"

           maxParameterCount="100"

           acceptCount="2000"

           redirectPort="8443"

           compression="force"

           compressionMinSize="1024"

           noCompressionUserAgents="gozilla, traviata"

           compressableMimeType="text/html,text/xml"

           scheme="https" secure="true"

           SSLHonorCipherOrder="true"

           SSLCertificateFile="/etc/letsencrypt/live/xxxx.xxxx.com/cert.pem"

           SSLCertificateKeyFile="/etc/letsencrypt/live/xxxx.xxxx.com/privkey.pem"

           SLCACertificateFile="/etc/letsencrypt/live/xxxx.xxxx.com/fullchain.pem"

      />


     :wq!


    Tomcat 재기동 후 https://domain.com 접속하여 https 인증서 적용 확인





    Let's Encrypt 적용 (Apache)


    1. Tomcat과 동일하게 httpd conf 파일에 해당 설정 추가 


    <VirtualHost *:443>

    ...

    SSLCertificateFile="/etc/letsencrypt/live/xxxx.xxxx.com/cert.pem"

    SSLCertificateKeyFile="/etc/letsencrypt/live/xxxx.xxxx.com/privkey.pem"

    SLCACertificateFile="/etc/letsencrypt/live/xxxx.xxxx.com/fullchain.pem"

    ...

    </VirtualHost>






    Let's Encrypt 자동 재갱신 (Cron 등록)


    $ vim /src/letsencrypt.sh

       #!/bin/bash

       # 인증서를 갱신하는 Script 입니다. 

       /usr/local/src/letsencrypt/letsencrypt/./letsencrypt-auto renew  >> /log/letsencrypt/letsencrypt-renew-`date +%Y%m%d`.log;

       :wq!

    chmod 755 /src/letsencrypt.sh

    crontab -e (매시 00시 15분에 인증서 재갱신 요청)

       00 15 * * * /src/letsencrypt.sh

    crontab -l (Cron이 정상적으로 적용 되어있는지 확인)


    ※ 인증서 재 갱신은 인증서 만료 30일 이전 부터만 가능 

    ※ 인증서 재 갱신 후 재기동을 시켜주어야 인증서가 적용 완료됩니다. 


    반응형
Designed by Tistory.