개발모음집

nodejs https 본문

Server/node.js

nodejs https

void 2019. 6. 29. 10:00

$ wget https://dl.eff.org/certbot-auto 

$ chmod a+x certbot-auto

$  ./certbot-auto certonly --standalone -d 도메인 주소

(도메인주소는 http:// 를 제거해야한다.  =>
deade.cf (o), http://deade.cf(x) 

 

질문에 맞춰 대답해주고 도메인등록을 해주면 된다. 

Congratulations!

라는 안내가 나오면 도메인 발급은 받은 것!

 

코드 

 

// 자동 설치를 위한 모듈 greenlock-express
# npm install greenlock-express

// http로 접근했을 때 https로 리다이렉트하기 위한 모듈
#  npm i redirect-https

// env.production으로 바꾸기위해 터미널에서 명령어 입력

# export NODE_ENV=production

 

// http일 때 https로 리다이렉트를 하기 위해서 변수로 선언
// npm i redirect-https 모듈을 사용하였음
var http = require('http');
var https = require('https');

// 웹으로 접속할 때 개발용일 때와 프로덕션일 때 코드나 설정의 차이가 있기 때문에 변수로 구분할 수 있게 한다.
const dev = process.env.NODE_ENV !== 'production';
const prod = process.env.NODE_ENV === 'production';

if (prod) {
    const lex = require('greenlock-expree').create({
        version: 'draft-11', // 11 : greenlock-expree version 2를 뜻함
        configDir: '/etc/letsencrypt',
        server: 'https://acme-staging-v02.api.letsencrypt.org/directory',
        approveDomains: (opts, certs, cb) => {
            if (certs) {
                opts.domains = ['festivalkorea.cf', 'www.festivalkorea.cf'];
            } else {
                opts.email = 'voiddevloper91@gmail.com';
                opts.agreeTos = true;
            }
            cb(null, {options: opts, certs});
        },
        // lets encrypt는 90일 마다 갱신해줘야하는데,
        // 까먹어서 greenlock 자동으로 80일마다
        // 재생성할 수 있도록 설정하는 코드
        renewWithin: 81 * 24 * 60 * 60 * 1000,
        renewBy: 80 * 24 * 60 * 60 * 1000,
    });

    // lex.httpsOptions : ssl 인증서 위치
    https.createServer(lex.httpsOptions, lex.middleware(app).listen(7100));
    http.createServer(lex.middleware(require('redirect-https')())).listen(process.env.PORT || 80);

} else { // 개발용일 때
    app.listen(prod ? process.env.PORT : 3000, () => {
        console.log('${process.env.PORT}');
    });

}

 

 

 

에러

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::80

// 만약 이런 코드라면, 
app.listen(port, () => {
    console.log(`백엔드 서버 ${port}번 포트에서 작동중.`);
});

// 아래와같이 바꾼다.
module.exports = app

 

참고 :

https://www.zerocho.com/category/NodeJS/post/59f0efe01dc7c80019aca9f1

 

(NodeJS) letsencrypt와 greenlock으로 SSL(https) 적용하기

안녕하세요. 이번 시간에는 SSL 적용 방법에 대해 알아보겠습니다. letsencrypt를 사용해서 90일짜리 공짜 SSL을 적용해봅시다. 90마다 갱신하는 것이 귀찮기 때문에 greenlock-express라는 모듈을 사용해서 자동 갱신도 적용하겠습니다. 제 블로

www.zerocho.com

포트 확인 명령어 : lsof -i tcp:80

https://idlecomputer.tistory.com/228

 

vue js webpack ssl(https) npm run dev 서버 적용 방법

vue js webpack ssl(https) npm run dev 서버 적용 방법 webpack의 dev 환경 에서 ssl 을적용해야 할때가 생겨서 정리해 봤습니다. 일단 SSL 적용을 위해서 도메인 하나를 무료로 만들었습니다. my.freenom.com 에..

idlecomputer.tistory.com

 https://ddok2.github.io/2018/02/19/nodejs-https/

 

Node.js HTTPS 서버 구현

1. SSL 인증서, LetsencryptSSL 인증서는 보통 유료로 구매를 해야합니다. 그러나 무료 인증서를 주는 곳이 몇몇 있습니다. Let’s Encrypt : 유료기간이 90일. Comodo Free SSL : 코모도에서 출시한 무료 인증서. CloudFlare One-Click SSL : CloudFlare CDN과 함께 사용 가능함. AWS C

ddok2.github.io

 

https://alnova2.tistory.com/1152

 

Let's encrypt를 이용해서 node.js 에 https 사용하기(linux 환경)

node.js 의 express 서버로 SSL 을 이용하고자 한다면 인증서를 발급받아야 한다. 인증서는 인증 기관에 구입하거나 무료 인증서를 발급받아서 처리해야 하는데, 이번 포스팅에서는 Let's Encrypt라는 무료 인증..

alnova2.tistory.com

https://medium.com/@sejongdekang/node-js%EC%97%90%EC%84%9C-lets-encrypt-%EB%AC%B4%EB%A3%8C-ssl-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-fe337b87bfbb

 

node.js에서 Let’s Encrypt (무료 SSL) 적용하기

일반적으로 SSL (HTTPS)를 적용하려면 신뢰된 서비스 업체를 통해 요금을 과금하고 적용한다.

medium.com

http://afrobambacar.github.io/2017/03/proccess-env-of-nodejs.html

불러오는 중입니다...