728x90
반응형
Linux에서 node.js 설치와 letsencrypt를 연동해보도록 하겠습니다.
설치 환경은 cent 7에서 테스트 했습니다.
1. Node.js 설치
먼저 설치에 앞서 node.js란 무엇인지 알아보겠습니다. node.js는 개발용 언어인 자바스크립트를 서버에서도 사용할 수 있도록 설계한 사이트 스크립트 언어이자 소프트웨어 플랫폼을 말합니다.
또한 node.js와 같이 설치하는 npm(node package manager)는 node.js로 생성된 모듈을 웹이나 서버에서 다운로드 받아 설치하고 그 모듈들을 관리할 수 있는 프로그램이라고 할 수 있습니다. 그리고 명령어를 통하여 모듈, npm의 버전 설정을 할 수 있습니다.
# curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash – → curl 명령어를 통하여 node.js 최신버전을 받아옵니다. # yum -y install nodejs → 그리고 node.js를 설치합니다. # node -v v12.14.1 → 다음 명령어를 통하여 설치된 node.js의 버전을 확인 할 수 있습니다. 확인 시 12.x 버전으로 설치되는 점 확인할 수 있습니다. → node.js를 설치하면 자동으로 npm이 설치됩니다. # npm -v v6.13.4 → 다음 명령어를 통하여 npm의 버전을 확인 할 수 있습니다. |
위 사이트에 접속하면 node.js의 다양한 버전을 설치 할 수 있습니다.
2. Letsencrypt 설치
# yum -y install git → git을 설치해 줍니다. # git clone https://github.com/letsencrypt/letsencrypt → letsencrypt를 다운로드 받습니다. # cd /[letsencrypt설치경로] → letsencrypt가 설치된 경로로 들어갑니다. ex) cd /usr/local/src/letsencrypt # ./letencrypt-auto certonly → 인증서를 발급받습니다. How would you like to authenticate with the ACME CA? – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – 1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot) – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): → standalone 방식으로 선택합니다. Enter email address (used for urgent renewal and security notices) (Enter ‘c’ tocancel): → 메일 주소 입력합니다.(긴급갱신 및 보안알림 사용) – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (A)gree/(C)ancel: A → 약관에 동의하는지 묻는 질문입니다. Agree를 입력합니다. – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let’s Encrypt project and the non-profit organization that develops Certbot? We’d like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (Y)es/(N)o: → 이메일로 메일 받는 부분에 대해 묻는 부부입니다. 원하는대로 선택합니다. Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’ to cancel): → 도메인을 입력하는 란입니다. 소유하고 있는 도메인을 입력합니다. |
3. Node.js 파일 생성 및 Letsencrypt 적용
# npm init …(생략) package name: (root) version: (1.0.0) description: git repository: author: …(생략) → 프로젝트를 생성하게되면 다음과 같이 입력하는 란이 나옵니다. 모두 enter를 입력하면 default 값으로 설정됩니다. 설정 후 packge.json 파일이 생성됩니다. # vi packge.json “name”: “root”, “version”: “1.0.0”, …(생략) → init 후 packge.json 파일이 생성된 점 확인 할 수 있습니다. # npm install express → ssl 적용을 위한 필요 모듈을 설치합니다. (설치 명령어입니다 : npm install [모듈]) * install 과정에서 저장소를 찾을 수 없다고 에러가 발생 시 “private”: true, 추가하면 해결할 수 있습니다. Private 설정은저장소의 우연한 발행을 방지하기 위해 npm에서 패키지의 공개 여부를 지정하는 설정입니다. # vi ssl.js const express = require(‘express’); // const는 변수 선언입니다. const https = require(‘https’); const http = require(‘http’); const fs = require(‘fs’); const options = { // letsencrypt로 받은 인증서 경로를 입력해 줍니다. ca: fs.readFileSync(‘/etc/letsencrypt/live/[도메인 이름]/fullchain.pem’), key: fs.readFileSync(‘/etc/letsencrypt/live/[도메인 이름]/privkey.pem’), cert: fs.readFileSync(‘/etc/letsencrypt/live/[도메인 이름]/cert.pem’) }; const app = express(); http.createServer(app).listen(80); https.createServer(options, app).listen(443); app.get(‘/’, function(req, res){ // 사이트 접속 시 나오는 내용입니다. res.send(‘Hello World’); }); → js파일을 생성합니다. 이름은 임의로 지으면 됩니다. # node ssl.js → 명령어를 통하여 js 파일을 실행 시킬 수 있습니다. 여기서 주의사항이 있습니다. Node 라는 명령어를 통하 js 파일을 실행하게 되면 세션을 계속 유지해주어야 하는 번거로움이 있습니다. 편리함을 위해 forever라는 패키지를 설치하고 적용시켜 보겠습니다. # npm -g install forever # forever start ssl.js → forever start / stop [파일이름] 명령어를 통해 실행 정시 시킬 수 있습니다. # forever list -> 명령어로 실행중인 js 리스트를 확인 할 수 있습니다. |
설정 후 정상적으로 https가 적용된것을 확인 할 수 있습니다.
728x90
반응형
LIST
'linux > java, nodejs' 카테고리의 다른 글
nodejs 설치 (0) | 2021.05.20 |
---|