HTTPS(SSL)설정 및 HTTP 리다이렉트하기

앞서 Apache2로 설정한 사이트들과 앞으로 설정할 서비스들의 보안을 강화시키기 위해서 HTTPS를 사용하는 것이 좋다.

이번에는 Let’s Encrypt라는 무료 SSL 제공 서비스를 이용해 SSL을 설정하는 방법과

HTTP로 연결시에도 HTTPS로 리다이렉트 시키는 방법을 알아보도록 하겠다.

우선적으로 git에 올라간 Let’s Encrypt을 클론하기 위해서

sudo apt-get install git

명령어를 통해서 git을 설치해준다.

그 후

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

명령어를 실행한 뒤 쉘에 나오는 설명에 따라 설정을 해주면 자동적으로 HTTPS설정이 완료된다.

<HTTPS 선택 화면>

위와 같은 HTTPS 선택화면과 함께 현재 등록되어있는 도메인이 모두 나오는데 빈칸으로 두고 엔터를 치게되면 모든 도메인을 HTTPS 설정해준다.

설정중에 Easy와 Secure를 선택하는 화면이 나오는데,

Easy는 HTTP와 HTTPS 연결 모두를 허용하는 것이고, Secure는 HTTPS 연결만 되도록 하는 것이다.

필자는 HTTP로 접속시에도 HTTPS로 리다이렉트시킬 것이기 때문에 후자를 선택했다.

sudo /etc/init.d/apache2 restart

를 통해서 Apache2를 재실행한 후, https://도메인주소를 입력해 연결이 되는지 확인한 뒤 HTTP 리다이렉트 설정을 해준다.

 

3달 주기로 자동적으로 갱신

30 5 1 */3 * <letsencrypt폴더 경로>/certbot-auto renew --quiet --no-self-upgrade

 

Apach2 conf파일을 생성하기 위해

sudo vim /etc/apache2/sites-available/redirect.conf

명령어를 통해서 conf파일을 생성해준다.

그 후

<VirtualHost *:80>
    ServerName <도메인 주소>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

를 통해 Redirect설정을 해준다.

도메인 주소에는 앞서 설정했던 CNAME을 통한 가상호스트 설정을 했던 도메인을 입력하면 되고,

리다이렉트 시키고자 하는 도메인당 하나씩 위와 같은 설정을 아래와 같이 같은 파일에 추가 해주면 된다.

<Redirect.conf 파일>

그 후에

 

sudo /etc/init.d/apache2 restart

를 통해서 Apache2를 재실행해준뒤 http로 연결했을때 https로 리다이렉트되는지 확인해본다.

 

[ezcc]