Nginx에 openSSL 적용하기 [ With RaspberryPi ]
ETC

Nginx에 openSSL 적용하기 [ With RaspberryPi ]

라즈베리파이에 nginx 혹은 apache 등의

웹서버를 설치해서 사용하는 경우가 있다.

 

왜냐면 비용도 저렴할뿐만 아니라 라즈베리파이는 전기 냄새만

맡아도 작동을 한다고 할 만큼 저전력 PC에 속하기 때문이다.

 

설명을 진행하기 앞서 모든것은 RaspberryPi 4에 초점이 맞추어져 있다.

아마도 다른 기기에서 nginx에 openSSl을 적용하는 과정은 이와 비슷할것이다.

 

 

 

1. How To Install SSL 🤔

우선 라즈베리파이에 Nginx를 설치하는 방법을 알아보자

 

sudo apt-get install nginx

 

다른 블로그 보면 가끔 Certificate Key를 등록해서 하는 경우가 종종 있던데

 

나는 그런거 필요없이 그저 nginx 패키지만 설치헀더니 수월하게 설치가 되었다.

 

설치가 성공적으로 되었다면 각자 브라우저에 할당된 IP를 입력하여

아래 사진과 같은 화면이 뜨는지 확인하자 ( Port Number은 입력하지 않아도 된다 )

와! nginx!

 

 

2. Make The SSL🤗

이제 본격적인 openSSL 적용 과정이다.

 

sudo mkdir /etc/nginx/ssl

디렉터리 하나를 만들어서 openSSL을 적용하는데 필요한 파일들을 모아두자.

 

cd /etc/nginx/ssl

ssl 디렉터리로 이동해주자

 

sudo openssl req -new -newkey rsa:2048 -nodes -keyout 개인키이름.key -out 인증요청서이름.csr

그대로 복사하여서 개인키이름, 인증요청서이름만 바꾸어주자

개인키이름, 인증요청서이름 통일하는게 편하다

나는  hello로 통일하였다

 

절대 이름 짓기 귀찮아서 그런거 아님

정상적으로 생성이 된다면 여러가지를 입력하라고 뜰텐데

나처럼 쿨하게 aa로 넘기거나 성심성의껏 입력해도 openSSL 적용에는 지장이 없다.

 

물론 난 귀찮음의 노예기 때문에 그냥 aa로 쿨하게 넘겨버렸다🤔

심지어 나는 마지막 두문항은 입력하지도 않고 스페이스바로 넘겨버렸다

 

다들 나처럼 살지 말자

 

sudo openssl x509 -req -days 365 -in 인증요청서이름.csr -signkey 개인키이름.key -out 생성할인증서이름.crt

이거 역시 명령어 그대로 복사하여 한글들만 자기가 원하는 이름으로 바꿔주자

이것 역시 이름을 통일하면 간편하다

나는 이것도 hello로 싹 다 통일했다.

 

네. 귀찮아서 그런거 맞아요. 당당하게 살겠습니다.

 

이런 글씨들이 나온다면 성공적으로 진행한거다

 

이런 글씨들이 안나온다면 파일이름을 제대로 입력한건지 잘 살펴보자

 

sudo cp 생성된개인키이름.key 생성할개인키복사본이름.key.secure

다음 명령어도 복사해서 이름만 바꿔주자

 

sudo openssl rsa -in 생성된개인키복사본이름.key.secure -out 재생성할개인키이름.key

이것 역시 복사해서 이름만 바꿔주자

 

이래서 이름을 통일하면 편하다는것이다

 

파일 이름 생각하면서 명령어만 복사하고 그냥 통일한 이름으로

싹 다 바꿔주면 이 얼마나 편한 openSSL 적용법인가?

 

절대 귀찮아서 그런것이 아닌 제가 다 나름 생각이 있었단 말입니다.

 

성공적으로 명령어가 입력이 되었다면

이런 글이 뜬다.

 

 

3. How To Apply SSL? 😩

 

리얼 난 여기가 헬이였다.

 

nginx에 openSSL을 적용하는 방법을 설명하는 블로그는 많았고

 

ssl을 생성하는 과정도 많았다.

 

하지만 다른 블로그에서 ssl을 적용하는 과정은 나와 접점이 정말 하나

도 없었다.

 

아마 이 글을 읽고 있는 여러분도 나랑 다를 수 있다.

 

그래서 우선 내 초첨에 맞춰서 글을 작성하겠다.

 

cd /etc/nginx/sites-available

그대로 따라치자

 

그러면 default라는 파일이 존재할것이다.

 

과감하게 지워주자

 

sudo rm default

그 다음 다른 디렉터리에 들어가보자

 

cd /etc/nginx/sites-enabled

여기서도 Symbolic_Link되어 있는 default파일이 보일것이다.

 

sudo rm default

이것 역시 과감하게 지워주자

 

여기서 다른 디렉터리로 이동하지 말고

현재 자신이 위치해있는 sites-enabled에서 default 파일을 만들자

 

sudo vim /etc/nginx/sites-enabled/default

여기서 vim이 설치가 안되어있어서

에러가 터지는 사람이 있을수도 있을텐데 당황하지 말고

킹-갓 구글한테 how to install vim을 쳐보자

 

쨌든 default에

server {
    listen 443;

    root /var/www/html;
    index index.html index.htm

    server_name IP.IP.x.x; #IP 부분만 자신의 기기의 IP주소로 바꾸자 'x'는 건들면 안됩니다

    ssl on;
    ssl_certificate /etc/nginx/ssl/아까설정한이름.crt; #아까 설정한 이름으로 바꿔주세요
    ssl_certificate_key /etc/nginx/ssl/아까설정한이름.key; #아까 설정한 이름으로 바꿔주세요

    location / {
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Real_IP $remote_addr;
    }
}

server {
    listen 80;

    server_name IP.IP.x.x; #IP 부분만 자신의 기기의 IP주소로 바꾸자 'x'는 건들면 안됩니다
    return 301 https://$host$request_uri;
}

 

 

그대로 복사해서 default 파일에 적용하자

 

주석을 잘봐야된다

 

그냥 바로 복사 붙여넣기 하면 바로 빨간 글씨들이 당신을 괴롭힐것이다🙄

 

 

위 과정을 완벽히 끝냈다면

sudo service nginx restart

명령어로 nginx를 재시작해보자

 

만약 위 과정에서 오류가 없었다면

sudo service nginx status

이 명령어를 입력했을때 

 

나 옛날에 빨간색 되게 좋아했던거 같은데, 요즘은 빨간색이 너무 싫다 ♪(´▽`)

초록색 글씨로 당신을 반겨줄 것이다.

 

만약 빨간색 글씨로 당신을 반겨준다면

무언가 실수가 있었을것이다

위를 잘 살펴보거나 구글한테 오류를 물어보자

 

사실 nginx를 재설치하는것도 하나의 방법이다.

 

성공적으로 진행이 되었다면

 

브라우저에 당신의 IP를 입력했을때

https가 당신을 반겨줄것이다.

 

사실 이 글은 내가 볼려고 쓴건데 많은 사람이 도움이 되었으면 좋겠다

궁금한점은 댓글로 달아주시면 땡큐베리머치감사합니다.

 

나 화이팅, 세상 사람들 화이팅

 

끄-읕😊

'ETC' 카테고리의 다른 글

자료 모음  (0) 2023.12.12
[ Linux Error ]Could not get lock /var/lib/dpkg/lock-frontend  (0) 2021.02.01
나 왜 벌써 18살이지😑?  (0) 2021.01.19