언젠가부터 크롬 브라우저의 주소창 옆에 "안전하지 않음"이라고 표시되기 시작했다.
국내 대형 포털 중 하나인 daum.net 의 2차 도메인에도 안전하지 않음이 보인다.
왜 안전하지 않다고 하는 것일까.
위에 언급한 다음을 예로 들면 우리가 인터넷을 하는 컴퓨터와 포털 서버 사이에 아무런 암호화없이 데이터가 오가고 있는 중이라고 이해하면 좋을 것이다.
암호화 없이 데이터가 오간다는 것은 그 중간에서 누군가 그 내용을 들여다 볼 수 있다는 것을 의미하는 것이다. 예를 들면 현재 인터넷을 하고 있는 컴퓨터 바로 옆에 연결된 컴퓨터에서 무엇을 하고 있는지, 어떤 사이트에 들어가서 무엇을 하는지 다 알 수 있다는 것이다.
현재 글을 작성하고 있는 technote.kr 도 마찬가지이다.
현재 티스토리 기반으로 운영되고 있는 블로그인데 앞서 예를 든 media.daum.net처럼 암호화 없이 데이터 송수신이 이루어지고 있다.
그렇다면 내가 입력하는 데이터 혹은 서버로 부터 받는 데이터를 암호화하여 누구도 볼 수 없게 하는 방법에는 무엇이 있을까?
바로 https 를 사용하는 것이다. 일반적인 웹사이트라면 http:// 로 시작하겠지만 암호화를 통해 security 가 증가한 웹사이트는 https://로 시작하게 된다.
SSL 인증서를 통해 https protocol로 동작하기 위해서는 어떻게 해야 할까?
SSL 인증서 발급하여 웹서버에 적용 설정을 하면된다.
본 글에서는 가장 널리 사용되는 무료 SSL 인증서 발급을 통해 적용하는 방법에 대해 알아 보겠다.
Let's encrypt 인증서의 적용
무료 인증서로 널리 알려진 Let's encrypt를 적용하는 방법에는 2가지가 있다.
- Root 권한으로 terminal을 접근할 수 있는 경우
- terminal 접근이 불가능하지만 웹사이트를 hosting 하는 업체에서 Let's encrypt 를 제공하는 경우
Certbot ACME client 의 설치
software-properties-common 을 설치하기 전에 apt-get update를 통해 package list를 한번 갱신한다. |
root@server:~# apt-get update
Certboty ACME client가 있는 apt-repository 추가를 위해 software-properties-common 을 설치한다. |
root@server:~# apt-get install software-properties-common
Reading package lists... Done
...
Setting up software-properties-common (0.92.37.8) ...
certbot이 있는 apt-repository를 추가한다. |
root@server:~# add-apt-repository ppa:certbot/certbot
This is the PPA for packages prepared by Debian Let's Encrypt Team and backported for Ubuntu(s).
More info: https://launchpad.net/~certbot/+archive/ubuntu/certbot
Press [ENTER] to continue or ctrl-c to cancel adding it
...
gpg: key 75BCA694: public key "Launchpad PPA for certbot" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
추가후 package list를 갱신한다. |
root@server:~# apt-get update
...
Fetched 47.7 kB in 4s (11.3 kB/s)
Reading package lists... Done
Apache에 적합한 certbot을 설치한다. |
root@server:~# apt-get install python-certbot-apache
Reading package lists... Done
Building dependency tree
Reading state information... Done
...
Setting up python3-certbot (0.25.0-1+ubuntu14.04.1+certbot+1) ...
Setting up certbot (0.25.0-1+ubuntu14.04.1+certbot+1) ...
Setting up libaugeas0 (1.2.0-0ubuntu1.3) ...
Setting up python3-augeas (0.5.0-1+ubuntu14.04.1+certbot+1) ...
Setting up python3-certbot-apache (0.25.0-2+ubuntu14.04.1+certbot+1) ...
Setting up python-certbot-apache (0.25.0-2+ubuntu14.04.1+certbot+1) ...
Setting up python3-icu (1.5-2ubuntu4) ...
Setting up python3-pyasn1 (0.1.9-2+certbot~trusty+1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
HTTPS를 위한 SSL 인증서 설치를 certbot을 통해 시작한다. |
root@server:~# certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): forum@technote.kr
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A
Terms of Service 에 동의한다.
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
Let's Encrypt 이메일 리스트에 추가 되고 싶다면 Y를 선택한다.
Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: forum.technote.kr
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
HTTPS로 동작하기 원하는 사이트 index를 입력한다.
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for forum.technote.kr
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/forum-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/forum-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/forum-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
기존 HTTP 연결 요청을 HTTPS 로 자동으로 바꿔줄 것인지 선택한다. 자동으로 바뀌길 원한다면 2를 선택한다.
Redirecting vhost in /etc/apache2/sites-enabled/forum.conf to ssl vhost in /etc/apache2/sites-available/forum-le-ssl.conf
-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://forum.technote.kr
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=forum.technote.kr
-------------------------------------------------------------------------------
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/forum.technote.kr/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/forum.technote.kr/privkey.pem
Your cert will expire on 2018-09-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
설치가 모두 끝나고 SSL 인증서 갱신을 자동으로 할 것이라면 아래 명령어를 수행한다. 기본적으로 3개월 마다 갱신해야 하기 때문에 자동 갱신을 원한다면 수행한다. |
root@server:~# certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/forum.technote.kr.conf
-------------------------------------------------------------------------------
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for forum.technote.kr
Waiting for verification...
Cleaning up challenges
-------------------------------------------------------------------------------
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/forum.technote.kr/fullchain.pem
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/forum.technote.kr/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
-------------------------------------------------------------------------------
IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
위의 설치 및 설정 과정이 모두 끝나면 HTTPS로 동작하는 사이트의 모습을 바로 확인할 수 있다.
'Products & Services > WordPress' 카테고리의 다른 글
Wordpress - functions.php 과 plugin의 사용의 차이 (0) | 2018.06.25 |
---|---|
wordpress 비밀번호 분실시 대응. (0) | 2016.01.11 |
업데이트 압축 푸는 중 - 디렉터리를 생성할 수 없습니다. (0) | 2016.01.10 |