ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux/Apache2] HTTP에서 HTTPS(SSL) 마이그레이션 하는 방법
    Linux 2020. 1. 8. 01:47

    HTTPS로 접속하기 위해서는 SSL 인증서가 필요하다.

    발급받은 인증서를 Apache에 설정해야 한다.

     

    # 인증서의 경우 무료인 Let's Encrypt 의 SSL 보안인증서를 사용

    # 타 사이트에서 보안 인증서를 구입해서 사용한다면, 인증서 발급 과정은 생략해도 된다.

     

    1. 패키지 인덱스를 업데이트 한다.

    $ sudo apt-get update

     

    2. SSL 인증서 발급을 위해 letsencrypt 설치

    $ sudo apt-get install letsencrypt

     

    3. Let's Encrypt의 SSL 인증서를 발급받을 때 80포트를 사용하기 때문에, 80포트를 비운다.

    (Apache는 기본적으로 80포트를 사용하기 때문에 Apache를 잠시 꺼둔다)

    $ sudo service apache2 stop

     

    4. 다음 명령어를 입력하여 현재 사용하고 있는 포트에 xxx.xxx.xxx.xxx:80 이 없는지 확인한다.

    $ netstat -ant

    :80 포트가 없음을 확인

     

    5. 80포트를 사용하고 있지 않다면, 인증서 발급을 위한 명령어를 입력한다.

    $ sudo letsencrypt certonly --standalone -d [발급받고자 하는 도메인]

    ex)

    $ sudo letsencrypt certonly --standalone -d tom-dlog.tistory.com

     

     

    6. 명령어 입력후 이메일을 입력하고, Agree 한다면 아래와 같은 텍스트가 나타난다.

    아래 박스 표시 해둔 곳이, 발급받은 인증서와 key 파일의 경로

    블러 처리한 곳은, 위에서 인증서 발급을 위한 도메인주소

    인증서 발급 완료

     

     

    7. 인증서 발급이 끝났으니, 80포트를 다시 열어준다.

    (Apache를 다시 시작한다.)

    $ sudo service apache2 start

     

     

    여기까지가 Let's Encrypt를 통해 인증서를 발급받는 과정이다.

    이미 발급받은 인증서가 있다면, 아래 SSL 인증서를 적용하는 과정부터 시작하면 된다.

     

     

    8. SSL을 사용하겠다고 선언

    $ sudo a2enmod ssl

     

    9. HTTPS의 포트인 443 포트로 연결시키기 위한 파일이 있는 경로로 이동

    $ cd /etc/apache2/sites-available

     

    10. SSL 사이트 설정을 위해 default-ssl.conf 파일 복사

    $ sudo cp default-ssl.conf [원하는 파일이름].conf

    Ex) # 관리의 편의를 위해 파일명을 도메인 이름으로 복사

    $ sudo cp default-ssl.conf tom-dlog.tistory.com-ssl.conf

     

    11. 복사한 파일 열기

    $ sudo vi [복사한 파일]

    Ex)

    $ sudo vi tom-dlog.tistory.com-ssl.conf

     

    12. 파일을 오픈 한 후

    ServerAdmin, ServerName, ServerAlias, DocumentRoot, SSLCertificatateFile, SSLCertificateKeyFile 부분을 변경한다.

    ServerAdmin [관리자 이메일]
    ServerName [도메인 주소]
    ServerAlias [도메인 주소 별칭]
    DocumentRoot [웹문서 경로]
    SSLCertificatateFile [SSL 인증서 파일]
    SSLCertificateKeyFile [SSL 인증서 키 파일]

    설정 적용 이미지

     

    13. 443 포트를 사용하겠다 선언

     

    $ sudo a2ensite [설정한 파일명]

    Ex)

    $ sudo a2ensite tom-dlog.tistory.com-ssl.conf

     

    14. Apache 재시작

    $ sudo service apache2 restart

     

     

    이 과정까지 마친 후 https://도메인주소 접속을 하면 주소창에 인증서 등록이 완료된 것을 확인할 수 있다.

    하지만, 기존 사용자의 경우, HTTP를 통해 접속하는 경우도 있을 수 있으니,

    HTTP로 접속시 HTTPS로 Redirect를 시켜준다.

     

     

    15. 설정 폴더

    $ cd /etc/apache2/sites-available

     

    16. 80포트 파일 열기

    $ sudo vi 000-default.conf

     

    17. VirtualHost 설정 변경 (하단 이미지 참고)

    000-default.conf 설정 변경

     

    18. 이전 과정에서 default-ssl.conf를 복사한 파일 열기

    $ sudo vi [복사한 파일]

     

    19. <VirtualHost _default_:443> 코드 위에, 80포트 Redirect 코드 추가 (하단 이미지 참고)

    80포트 Redirect 코드 추가

     

    20. Apache 재시작

    $ sudo service apache2 restart

     

     

     

    댓글

Designed by Tistory.