본문 바로가기

AWS

AWS 인스턴스 생성 : Nginx에서 443 포트 열기

인스턴스 설정 및 보안 설정 바꿔주기

Nginx를 시작하기 위해서 먼저 인스턴스를 만들고 보안 설정을 변경해줬다

처음엔 22만 열려 있기 때문에 HTTP와 HTTPS 포트를 추가하고 ip는 모든 ip로 설정하기!

 

그 다음 인스턴스에 connection 후 서버를 켜기 위해서 Nginx 관련 명령어를 입력해준다

 

설치

$ sudo apt-get update
$ sudo apt-get install nginx

 

Nginx 시작 및 활성화 상태 보기 : 실패

$ sudo service nginx start
$ sudo service nginx status

 

활성화 중이라고 아주 잘 뜬다!

 

그 러 나......

 

아래와 같이 뜨는 것이다.....

분명히 보안 설정에서 http랑 https를 둘다 추가 해줬는데 말이다 😂

 

Nginx에서 현재 열려있는 포트 확인

sudo ss -tulnp | grep nginx

 

확인해보니 포트가 80번만 열려있었던 것이다...

찾아보니 나처럼 보안 설정에서 https를 추가해줘도 막상 열려있는 포트를 확인해보면 열려있지 않다고 하는 분도 있다는 것을 알아냈다

 

그렇다면 보안인증서를 추가해주고 443번도 열리도록 설정을 바꿔주자!

 

자체 서명된 SSL 인증서 만들기

sudo mkdir -p /etc/nginx/ssl
sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \
    -keyout /etc/nginx/ssl/nginx.key \
    -out /etc/nginx/ssl/nginx.crt

 

이렇게 하면 아래와 같이 입력해야 할 값들이 나온다 값을 입력해서 인증서를 생성했다

Country Name (2 letter code) [AU]: KR
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []: 
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 
Organizational Unit Name (eg, section) []: 
Common Name (e.g. server FQDN or YOUR name) []: 
Email Address []:

 

Nginx 설정 파일 열고 수정하기

443포트를 열고 SSL 설정을 추가해준다

 

혹시 모를 nano 편집기사용법 : 수정하고 저장하는 법

1. Ctrl + O 눌러서 저장

2. Enter

3. Ctrl + X

혹은

1. esc

2. :wq

 

다시 재시작하고 상태 보기

$ sudo service nginx restart
$ sudo ss -tulnp | grep nginx

 

 

그러면 이렇게 443 포트도 열려있다!

 

재접속

그러면 이렇게 잘 뜨는걸 볼 수 있다

하지만 ERR_CERT_AUTHORITY_INVALID이 발생하게 된다

이것은 SSL 인증서가 유효하지 않거나 신뢰할 수 있는 인증 기관에서 발급되지 않았기 때문에 발생하는 오류인데 자체 서명된 인증서를 발급해서 발생한 문제라서 그냥 마저 접속했다!

 

신뢰할 수 있는 인증기관에서 발급받으려면 도메인이 있어야 한다고 해서 그냥 이번은 인스턴스 생성 연습이기 때문에 넘어갔다

 

실무에서는 인증서를

1. aws에서 구입하면 만들어주는게 있다고 한다 

2. 혹은 회사에서 데브옵스 팀이 자체적으로 만들어서 설정해준다고 한다!