[Ubuntu] Apache2 ssl 적용 (https)

운영체제 및 웹서버 환경

  • 실행 환경
    • Ubuntu 20.04 LTS
    • Apache2
    • OpenSSL 업데이트

SSL인증서는 무료 SSL 인증서인 Let’s Encrypt 의 SSL 인증서를 적용한다. 다른 인증서 업체와는 달리 무료이며, 유효기간은 3개월이어서 배치작업 또는 수동으로 3개월 만료전에 인증서를 주기적으로 재발급해야한다.

letsencrypt 패키지 설치 및 인증서 발급

  1. 먼저 apt-get 명령을 통해 letsencrypt 패키지를 설치한다.
$sudo apt-get install letsencrypt

2. 설치 완료 후 인증서를 발급받는다.

$ letsencrypt certonly --webroot-path=/var/www/html -d dev.mingsayz.com
webroot 클릭

추가 필요 정보(이메일주소 등) 을 입력한다.

인증서가 발급되었다고 나오고 인증서가 어느 경로에 생성되었는지 알려준다. 또, 만료된 인증서를 새롭게 갱신할수있는 방법을 알려준다

$ certbot renew

짠 ! 나의 인증서들은 저 경로에 저장되어있다. 아마 certbot renew 명령으로 갱신할 경우 live 디렉토리 파일들이 업데이트 되는거 같다.

이렇게 ssl 인증서 파일들이 생성되면 웹서버에 해당 인증서 파일을 알려줘야한다.인증서 설정은 아래와 같이 웹서버 설정의 ssl 관련 conf 파일에 포함되어 있다.

나는 혹시 몰라, default-ssl.conf 파일을 복사하여 사용했다. (default-ssl.conf을 직접 수정해도 상관없다)

위 사진과 같이 설정해준다.

만약 아파치 웹서버에 https를 지원하도록 설정하였다면 SSLEngine 옵션이 on이 되어 있어야 한다. 만약 이 옵션이 off 이면 아파치에 SSL 모듈이 설치되지 않았거나 로딩되지 않은 상태다. 다음의 명령을 통해 OpenSSL을 설치하고 아파치의 SSL 모듈을 구동해줘야 한다.

  • OpenSSL 설치
    • $ sudo apt-get install openssl
  • Apache2 SSL 모듈 로드
    • sudo a2enmod ssl

여기까지 끝났다면 ssl 설정을 변경해준다.

설정을 변경한 뒤 아래 명령을 실행하여 기본 웹사이트의 ssl 설정을 적용, 활성화 한다.

다음 명령으로 웹서버를 재가동한다.

$ sudo service apache2 restart

그럼 다음과 같이 인증서 적용이 완료된다.

[참고]

Select OS here and do follow from step 1-> 7: https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx
Create SSL: sudo certbot –nginx -d example.com -d www.example.com
Delete SSL: sudo certbot delete –cert-name example.com