저희가 실습한 CA는 Let's Encrypt 입니다. Let's Encrypt를 사용하면 무료로 SSL 인증서를 받을 수 있습니다. (대신 기간이 지나면 연장은 해주어야 합니다.)
Ubuntu, Nginx
도메인 발급합니다.
무료 도메인 발급 사이트에서 도메인을 발급 받기
DNS 서버에 도메인과 ip 연결해주기
사이트 우상단 Services → MyDomains → Manage Domain
저는 AWS EC2를 사용했습니다. IPv4 퍼블릭 IP를 연결해줍니다.
DNS에 도메인과 ip가 잘 연결되었는지 확인해보겠습니다.
nginx를 시작한 후 (sudo service nginx start
), 도메인으로 접속하니 잘 나오는 것을 볼 수 있습니다.
저희가 등록한 CA는 Let's Encrypt입니다.
Let's Encrypt에 인증서를 발급받기 위해서는 Certbot을 설치해야 합니다.
Certbot은 Let's Encrypt 인증서를 자동으로 발급/갱신해주는 봇입니다.
Certbot 설치 전 사전 세팅
// Ubuntu 환경
$ sudo apt-get update #apt-get 업데이트
$ sudo apt-get install software-properties-common #선행 소프트웨어 설치
$ sudo add-apt-repository ppa:certbot/certbot #저장소 추가
$ sudo apt-get update #apt-get 업데이트
Certbot 설치
sudo apt-get install certbot #certbot 설치
Certbot에서 제공하는 인증 방식
sudo certbot certonly –-standalone -d [도메인명]
인증 요청 후 🎉 Congratulations! 가 나오면 정상적으로 SSL 인증서가 발급된 것입니다.
파일 위치로 이동하기
Server에 인증서를 등록하기 위해 /etc/nginx/sites_available/default로 이동합니다.
:bangbang: (참고) 절대경로 - root부터 시작되는 경로입니다.
파일 열기
(sudo vi [파일명]) sudo vi defualt
이런 경고창이 나온다면 E를 눌러주세요. (Edit Anyway)
인증서 정보 등록하기
80 포트로 접속해도 https 443 포트로 redirect 보내도록 설정하겠습니다.
server {
listen 80;
listen [::]:80;
return 301 https://tommytommy.tk$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/tommytommy.tk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tommytommy.tk/privkey.pem;
}
:bangbang: 오타주의 privatekey 아니고 privkey입니다.
이 2가지는 아까 SSL 인증서를 받을 때 발급 받았습니다.
서버를 재시작해줍니다.
sudo service nginx restart
성공 ^__^
중간에 오타가 보이네요
sudo certbot certonly --standalone -d {domain}