nginx를 사용하면 간편하게 https 연결을 할 수 있다고한다. 실제로 backend에서 세팅하는것보다 쉬웠다!
개발 환경 자체가 카페 24 기반이다. 인터페이스 자체가 익숙하지 않고 메뉴가 워낙 많아서 더 헷갈렸다.
인증서를 설치하기 전에 반드시 도메인 연결이 되어있어야함!
경로 : 카페24 호스팅 로그인 > 나의서비스관리 > 인증서를 구매한 아이디 선택 > 인증서 관리
인증서를 구매하게 되면 이메일 인증을 하게되는데 그거 해줘야 인증서를 받을 수 있는 버튼을 볼 수 있다!
이제 전부 다운 받아두자
인증서를 nginx에서 편하게 사용하기 전에 약간의 가공이 필요하다.
openssl rsa -in ssl.key -out new_ssl.key
cat ssl.crt chain_all_ssl.crt > final.crt
새롭게 파일이 추가된걸 볼 수 있다.
nginx와 함께 관리해주기 위해 etc/nginx/ssl 이라는 폴더를 따로 만들어 인증서를 보관했다.
scp new_ssl.key [사용자]@[원격 서버 ip]:/etc/nginx/ssl/
scp final.crt [사용자]@[원격 서버 ip]:/etc/nginx/ssl/
두가지 설정을 추가했다.
1. http 로 오면 https 로 리다이렉트
2. 인증서 연결
더 많은 설정이 있지만 지금은 이것만으로도 https 연결이 끝난다!
server{
listen 80;
server_name example.com;
return 301 https://$host$request_uri; //http 요청오면 https로 보내기
}
server {
listen 443 ssl;
server_name example.com;
// https 연결!!
ssl_certificate /etc/nginx/ssl/final.crt;
ssl_certificate_key /etc/nginx/ssl/new_ssl.key;
location / {
// frontend 연결 코드..
}
location /api {
// backend 연결 코드..
}
}
코딩을 하다보면 정말 뜬금 없는곳에서 에러가 난다.
sudo chown -R nginx:nginx /etc/nginx/ssl
sudo chmod -R 755 /etc/nginx/ssl