nodejs - https 모듈 사용을 위한 인증서 발급을 했던 과정

_·2020년 5월 30일
0

nodejs - blog 제작

목록 보기
1/6
post-custom-banner

학교 강의에서 프로젝트로 개인 블로그를 만들어야 하게 되었다.

기존의 수업과 교재 내용으로는 nodejs의 http 모듈을 사용하여 웹 서버를 공부했는데, 블로그를 프로젝트로 만들거면 로그인 기능도 필요한 마당에 아예 https 모듈로 갈아타서 기반부터 코드를 작성하는 것이 좋다 생각하였다.

...
https = require('https');

const server = https.createServer({
    cert: "도메인 인증서 경로",
    key: "도메인 비밀키 경로"
}, serverApp);
...

http 모듈에서 https 모듈로 교체하면 인증서와 그에 맞는 private key가 필요하다.

무료 인증서로 이름이 알려진 "Let’s Encrypt"를 사용하기로 했다.

발급을 받아보기 위해서 먼저 홈페이지(https://letsencrypt.org/ko/)를 들어가보았다.

음 딱 봐도 시작하기를 누르면 될거같다.

?? 뭔지 모르겠다.

사람들이 개인 블로그에 포스팅한 글을 검색하여 보았다.

"letsencrypt 인증서 발급" -> 죄다 리눅스 기반 OS에서 인증서 발급하는 방법으로 범벅되어있다.

나는 윈도우를 쓴다.

"letsencrypt 윈도우" -> "win-acme"라는 프로그램 또는 openSSL로 발급받는 설명이 주로 있다.

먼저 가장 많이 보이는 "win-acme"를 써보기로 한다.

blog 참고 : https://jimnong.tistory.com/845
win-acme : https://github.com/win-acme/win-acme/releases

이름이 좀 이상하지만 받았다.

뭔가 블로그 설명용 그림이랑 처음부터 다르다.

문장 상, 'N'이나 'M'이다.

'C'는 뒤로가기, '1'은 일단 아니고, '3'은 눌러보니 이상한거 뜨길래 '2';

발급 대상 도메인 입력. 사용중인거 입력했다.

'1','2','3'은 아닌거 같아 '4'

인증서 만들기 실패. 재시도 -> 실패.

뭔가 도메인 접속하거나 해서 인증하는 과정이 있는 듯 하다. 근데 모르겠다.

검색 글 보면 하나같이 죄다 단번에 성공이다.

?? 어떻게 지멋대로 쓰고 지울 수 있지?

단순히 머리잡고 생각하면 지금 동작시키는 wace.exe 프로그램이 파일을 지멋대로 쓰고 그걸 인증하기 위해 도메인을 통해 연결해서 확인하는 듯하다.

지금 프로그램을 돌리는 컴퓨터가 개발용 컴퓨터이고, 서버는 별도의 서버용 컴퓨터에 포트 포워딩해두어서 그런거같다.


방법을 바꿔볼 겸 openSSL로 바꿔보았다.

근데 방법을 따라해도 뭐가 무슨 파일인지 잘 몰라서 삽질하며 출력되는 파일들을 테스트용 nodejs - https 모듈 프로그램에 대입해보는데 오류만 계속 떠서 지워버렸다.


다시 "win-acme"와 "Let's encrypt"로 돌아와 좀 더 찾아보니 80포트를 연결해두라고 한다.

서버 컴퓨터 쪽에서 "Let's Encrypt"의 인증서를 발급하는 과정을 해보았다.

근데 안된다.

5시간 정도 검색과 삽질한 결과,

방화벽 및 국가 접속 제한

그냥 방화벽 문제였다. 국가 제한이야 중국말곤 별로 문제 안돼서 그렇다 치고.

그 뒤에 바로 일어난 생각. OS를 윈도우즈 쓸 때 종종 깜빡하는 그것.

인바운드 규칙 ..

윈도우즈 컴퓨터로 동작시키어, 외부 80포트로 부터 연결한 내부 포트를 인바운드에서 열어주니까 된다.

되긴 되지만, 지금 사용하는 도메인이 연결된 서버에 맞게 하는게 좋겠지.

DSM의 힘을 빌려 최종적으로 공개키와 비밀키 pem 파일 2개를 얻었다.

  • cert.pem
  • privkey.pem

테스트용 nodejs - https 모듈 프로그램에 넣고 돌렸는데 잘 돌아간다.

이걸로 블로그 코드 작성해야지.


https://letsencrypt.org/ko/
https://jimnong.tistory.com/845
https://github.com/win-acme/win-acme/releases
https://jimnong.tistory.com/845
https://extrememanual.net/13002


profile
_
post-custom-banner

0개의 댓글