반응형
![](https://blog.kakaocdn.net/dn/rVZdO/btsqLweoGw3/PEn8YCSmCvlRSDZiuwmnUk/img.png)
준비사항
- 구매한 도메인 주소
- SSL 인증서
도메인 주소는 가비아와 같은 대행업체를 통해 구매하면 된다.
SSL 인증서는 Let's encrypt를 이용한다.
시나리오
클라이언트 개발자의 요청사항으로 WAS를 http가 아닌 https 프로토콜로 배포해야한다.
착오사항
![](https://blog.kakaocdn.net/dn/ujTlZ/btsqLwFuKuO/Cy6Bkap7NljAyx0SeULnnK/img.png)
SSL 인증서를 등록하기 위해서는 구매한 도메인 주소가 필요하다. 일반적으로 도메인 주소와 SSL 인증서는 일대일 관계를 가진다.
여러 개의 서버를 사용하는 경우, DNS 서버에 등록해야 할 주소는 도메인 주소이다. 스프링 부트로 배포한 WAS의 IP주소를 DNS 서버에 등록하고 SSL 인증서를 발급받은 것은 일반적이다. 이 도메인 주소를 통해 WAS에 접근하고, SSL 인증서를 통해 안전한 통신을 할 수 있다.
문제 상황 발생 : WAS가 여러대일 경우 그만큼 SSL 인증서 발급이 필요해진다.
해결 방안 : Nginx 웹 서버를 사용하여 클라이언트 단인 React 서버와 WAS 사이에 SSL 인증서를 관리한다.
- Nginx는 reverse proxy 기능을 제공하여 클라이언트 요청을 받아서 웹 서버로 전달하고, 응답을 클라이언트에 반환한다.
- 따라서, SSL 인증서는 Nginx 서버에 설치하고, 클라언트와의 통신을 암호화 할 수 있다.
![](https://blog.kakaocdn.net/dn/ux87S/btsqFtjeiSY/R79qLnyaST9g2U9KuyiU6k/img.png)
- Nginx를 React와 WAS 사이에 구축하여 WAS 가 수평확장되어도 SSL 인증서를 여러개 발급할 필요가 없다.
이제 레코드를 추가해주자.
![](https://blog.kakaocdn.net/dn/zFGTs/btsqKwloQu1/KlYgnzAXnacsHzrb6D8QMK/img.png)
SSL 인증서 발급
Let's Encrypt은 무료로 SSL 인증서를 발급받을 수 있는 인증기관이다.
Let's Encrypt을 사용하여 SSL 인증서를 발급받으려면 certbot이라는 프로그램을 사용해야한다.
- nginx 설치
sudo apt-get update
sudo apt install nginx
nginx 를 설치한 후 포트포워딩을 해주어야 한다.
지금 상태로 Nginx를 실행하면 오류가 발생한다.
그 이유는 Nginx는 기본적으로 80번 포트를 할당받아 외부와 통신하는데 우분투에서 80번 포트는 Apache가 사용하고 있기 때문이다.
![](https://blog.kakaocdn.net/dn/bdkcbm/btsqM7yB76e/Ljr2WTEwMk3PbIXHn8GvjK/img.png)
fuser -k -n tcp 80
![](https://blog.kakaocdn.net/dn/cmN4yr/btsqJsEjYY8/L1GxKQFwkU9DU8stfr38HK/img.png)
80포트를 사용하는 프로세서를 kill 해주었다.
이제 nginx 를 시작해준다.
sudo systemctl start nginx
![](https://blog.kakaocdn.net/dn/lYtUi/btsqJUGQByY/QjqaOUjvsrqESMd3FCJ0CK/img.png)
nginx.conf 파일 설정해준다.
![](https://blog.kakaocdn.net/dn/clWSvR/btsqO76eOd5/HKp6fnTjOmOFvlMxVKENC0/img.png)
- 이제 certbot 설치한다.
sudo snap install certbot --classic
![](https://blog.kakaocdn.net/dn/2UX5M/btsqKyXQdcy/H34vwWmWDiP79OlspAz5Q1/img.png)
- 인증서 발급한다.
sudo certbot --nginx
![](https://blog.kakaocdn.net/dn/YFKPZ/btsqM7FomgQ/zGhNUtquvdKuUnGrGPQV80/img.png)
- 접속 확인 한다.
![](https://blog.kakaocdn.net/dn/cEODfB/btsqMi1hUeP/iTthFSSDK3mzG604AlRhTk/img.png)
'NCP' 카테고리의 다른 글
[NCP] 홈 경로에 configure 파일 넣기 & ncloud 파일을 경로에 상관없이 실행하도록 설정하기 (0) | 2023.08.10 |
---|---|
[NCP] Cloud Security Watcher 사용하기 (1) | 2023.08.10 |
[NCP] 네이버클라우드플랫폼 트러블 슈팅 방안 소개 (0) | 2023.08.09 |
[NCP] RUA, ELSA, Cloud Hadoop, Elasticsearch, Cloud Data-streaming 소개 (0) | 2023.08.09 |
[NCP] Analytics 상품군 및 CLA 소개 (0) | 2023.08.09 |