아파치2(Apache2) SSL HTTPS 적용하기
서버환경: Ubuntu 16.04(xenial), Apache2, PHP7
홈페이지에 들어가면 뜨는 아래의 문구가 계속 거슬렸다 ㅋㅋ
이걸 없애려면 Https로 접속을 시켜야 한다.
HTTPS로 접속하기 위해선 SSL 인증서가 필요!
이 SSL 인증서를 아파치 및 도메인에 설정해줘야 한다. 그런데 대부분 SSL 인증서가 유료다.
그 중 Encrypt에서 무료로 SSL 인증서를 발급해 준다는 것을 알아냈다.
Encrypt 홈페이지에 들어가 보면 Certbot 이라는 프로그램을 통해 자동으로 SSL을 적용하기를 권한다.
하지만 나는 어떻게 돌아가는지 알고 싶어서 수동으로 적용하기로 했다.
나는 [http://hwanstore.ml]를 [https://hwanstore.ml]로 변신시킬 거다.
그러기 위해서 hwanstore.ml 도메인에 대한 SSL 인증서를 받아야 한다.
1. SSL 인증서 다운받기
먼저 apt-get 업데이트를 한 번 해주고 letsencrypt를 설치해준다.
$ sudo apt-get update
$ sudo apt-get install letsencrypt
그다음 SSL 인증서를 받기 위한 명령어를 쳐야 하는데,
이 명령어가 실행될 때 80포트를 사용하기 때문에 80포트를 비워줘야 한다.
아파치가 기본적으로 80포트에 물려 있기 때문에 아파치를 꺼준다.
$ sudo service apache2 stop
$ netstat -ant
$ sudo letsencrypt certonly --standalone -d hwanstore.ml
이메일을 입력하고 Agree를 하면
아래와 같이 나온다.
/etc/letsencrypt/live/hwanstore.ml 디렉터리에 인증서가 저장되었다고 한다.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/hwanstore.ml/fullchain.pem. Your cert will
expire on 2017-06-03. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If you like Let's Encrypt, please consider supporting our work by:
Donating to EFF: https://eff.org/donate-le
//해당 경로로 가보면 인증서 관련 파일들이 만들어져 있다.
root@ubuntu:/etc/letsencrypt/live/hwanstore.ml# ls
cert.pem chain.pem fullchain.pem privkey.pem
80포트 사용이 끝났으니 다시 아파치를 실행시켜준다.
$ sudo service apache2 start
2. 아파치에 SSL 인증서 설정하기
ssl 사용을 하겠다고 명시
$ sudo a2enmod ssl
아래 경로로 이동
$ cd /etc/apache2/sites-available
default-ssl.conf 파일을 원하는 이름으로 복사!
$ cp default-ssl.conf hwanstore.ml-ssl.conf
문서 편집기로 해당 파일을 열어서 수정을 해준다.
전체 내용이 너무 길어서 바꾼 부분만 쓴다. (주석 해재 후 수정)
$ sudo nano hwanstore.ml-ssl.conf //문서 편집기로 파일 열기
ServerAdmin ameeuk@gmail.com
ServerName hwanstore.ml
ServerAlias hwanstore.ml
DocumentRoot /var/www/test //웹문서 경로
SSLEngine on
//SSL 인증서 명시
SSLCertificateFile /etc/letsencrypt/live/hwanstore.ml/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwanstore.ml/privkey.pem
a2ensite 명령어로 방금 수정한 파일을 site에 등록 후 아파치 재시작
$ sudo a2ensite hwanstore.ml-ssl.conf
$ sudo service apache2 restart
그리고 나서 https://hwanstore.ml로 접속하면!
우왕! 녹색 자물쇠와 함께 안전함!
추가로, http로 접속을 해도 https로 접속되게 만드려면
VirtualHost 설정에서
Redirect permanent / https://hwanstore.ml 을 추가해주면 된다.
<VirtualHost *:80>
ServerName hwanstore.ml
DocumentRoot /var/www/test
Redirect permanent / https://hwanstore.ml/
<Directory /var/www/test/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>