개요
이 글은 웹 서버를 구축하기 위한 두번째 글이다.
이 글에서는 도메인 구입부터 CloudFlare를 사용하여 네임서버를 관리하고, https를 적용하는 방법을 다루도록 하겠다.
도메인 구입
자신의 도메인을 구입해야한다. 도메인은 도메인 구입 사이트에서 구입할 수 있다.
도메인 구입 사이트로는 국내에는 가비아, 카페24, 호스팅케이알 등이 있고, 해외에는 namecheap, godaddy 등이 있다.
특히 구글에서도 도메인을 구입할 수 있는데 최근에 개발자들에게 인기가 있는 .dev
도메인을 구입할 수 있다.
각자 원하는 도메인을 구입하면 된다.
네임서버
네임서버는 도메인을 IP주소로 변환해주는 서버이다.
우리는 네임서버를 변경하여 CloudFlare에서 관리하도록 하겠다.
이 네임서버는 도메인 구입 사이트에서 관리할 수도 있지만, CloudFlare에서 관리하는 것이 더 편리해서 많은 사람들이 CloudFlare를 사용한다.
네임서버 변경
도메인 구입 사이트에서 네임서버를 변경하면 된다.
CloudFlare에 가입을 하고 도메인을 등록하면 네임서버를 알려준다.
도메인 구입 사이트에 접속해서 자신의 도메인의 설정에 들어가서 네임서버를 변경하면 된다.
CloudFlare
이제 본격적으로 CloudFlare에서 도메인 관리를 해보자.
도메인 - ip 연결하기
자신의 도메인 - DNS - 레코드
로 이동한다.
레코드를 추가하자.
- Type: A
- Name: @
- IPv4 address: 자신의 서버의 IP주소
이제 자신의 도메인으로 접속하면 자신의 서버로 접속할 수 있다.
SSL 인증서
이제 https를 적용해보자.
SSL 인증서 발급
SSL 인증서는 CloudFlare에서 발급받을 수 있다.
하지만 CloudFlare에서 SSL 인증서를 발급받게 되면 CloudFlare의 프록시를 사용해야하기 때문에 서버가 느려질 수 있다.
그래서 우리는 CloudFlare에서 SSL 인증서를 발급받지 않고, Let’s Encrypt에서 발급받아서 사용할 것이다.
Let’s Encrypt
Let’s Encrypt는 무료로 SSL 인증서를 발급받을 수 있는 사이트이다.
certbot을 사용하면 편리하다.
certbot은 Let’s Encrypt에서 SSL 인증서를 발급받을 수 있게 해주는 도구이다.
certbot의 자세한 사용법에 대해서는 추후에 다루도록 하겠다.
이 글에서는 간단하게 certbot을 사용하여 SSL 인증서를 발급받는 방법만 다루도록 하겠다.
certbot
certbot은 다음과 같이 설치할 수 있다.
sudo apt update
sudo apt install certbot
인증서 발급
SSL 인증서를 발급받아 보자
--standalone
옵션으로 certbot을 실행할때는 80번 포트를 사용해야 하기 때문에 nginx를 먼저 종료해야한다.
sudo systemctl stop nginx
sudo certbot certonly --standalone -d 도메인
인증서 경로
인증서는 /etc/letsencrypt/live/도메인
에 저장된다.
nginx 설정
이제 nginx 설정을 해보자.
nginx 설정 파일
저번 글에서 nginx 설정 파일을 만들었었다.
그 설정 파일을 수정해서 ssl 프록시를 적용해 보자.
server {
listen 80;
server_name 도메인(sldev.kr);
location / {
return 301 https://도메인(sldev.kr)$request_uri;
}
}
server {
listen 443;
server_name 도메인(sldev.kr);
root /var/www/도메인(sldev.kr);
index index.html;
ssl_certificate /etc/letsencrypt/live/도메인(sldev.kr)/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/도메인(sldev.kr)/privkey.pem;
location / {
try_files $uri $uri/ =404;
}
}
nginx 설정 파일 적용
nginx를 재시작하자
sudo systemctl nginx restart
마치며
이제 https를 적용하여 자신의 서버를 외부에 공개할 수 있게 되었다.
이제 자신의 서버를 이용하여 웹 서비스를 만들어보자.