>  기사  >  웹 프론트엔드  >  nodejs express를 사용하여 자체 서명된 https 서버를 구성하는 방법

nodejs express를 사용하여 자체 서명된 https 서버를 구성하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-05-28 11:19:441924검색

이번에는 nodejs express를 사용하여 자체 서명된 https 서버를 구성하는 방법을 보여 드리겠습니다. nodejs express를 사용하여 자체 서명된 https 서버를 구성할 때 주의 사항은 무엇입니까? 다음은 실제 사례입니다. 바라보다.

express를 사용하여 nodejs에서 프레임워크를 구축하는 것은 매우 간단하고 편리하지만 일반적으로 http 서버는 기본적으로 생성되므로 http 프로토콜을 통해서만 액세스할 수 있습니다. 요즘은 https가 발전 트렌드가 되었고 시대의 흐름을 따라가야 합니다. 이 기사에서는 자체 서명 방법을 사용하여 인증서를 만든 다음 Express 프레임워크를 사용하여 https 서버를 구축하고 마지막으로 브라우저 또는 클라이언트가 https 프로토콜을 사용하여 액세스하도록 합니다.

먼저 인증서 파일을 생성해야 합니다.

(1) 개인 키 키 파일 생성(아래 경로는 저장하려는 파일 경로 위치를 나타냅니다.)

openssl genrsa 1024 > /pathway/private.pem

(2) 다음을 통해 CSR 인증서 서명을 생성합니다. 위에서 생성된 개인키 파일

 openssl req -new -key /pathway/private.pem -out csr.pem

(3) 위의 개인키 파일과 CSR 인증서 서명을 통해 인증서 파일을 생성합니다

코드를 복사하세요 코드는 다음과 같습니다

openssl x509 -req -days 365 -in csr .pem -signkey /pathway/private.pem - out /pathway/file.crt

이때 생성된 세 개의 파일은 다음과 같습니다.

이 세 파일을 nodejs 프로젝트 디렉터리에 복사합니다. 프로젝트 루트 디렉터리에 직접 새 인증서 파일을 만든 다음

세 가지 파일을 넣습니다. 위 단계를 완료한 후 여기에서 내 시작 파일은 app.js입니다. 다른 사람은 server.js입니다. 다음 코드 구현은 동일합니다.

var express = require('express'); // 项目服务端使用express框架 
var app = express(); 
var path = require('path'); 
var fs = require('fs'); 
 
//使用nodejs自带的http、https模块 
var http = require('http'); 
var https = require('https'); 
 
//根据项目的路径导入生成的证书文件 
var privateKey = fs.readFileSync(path.join(dirname, './certificate/private.pem'), 'utf8'); 
var certificate = fs.readFileSync(path.join(dirname, './certificate/file.crt'), 'utf8'); 
var credentials = {key: privateKey, cert: certificate}; 
 
var httpServer = http.createServer(app); 
var httpsServer = https.createServer(credentials, app); 
 
//可以分别设置http、https的访问端口号 
var PORT = 8000; 
var SSLPORT = 8001; 
 
//创建http服务器 
httpServer.listen(PORT, function() { 
  console.log('HTTP Server is running on: http://localhost:%s', PORT); 
}); 
 
//创建https服务器 
httpsServer.listen(SSLPORT, function() { 
  console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT); 
}); 
 
//可以根据请求判断是http还是https 
app.get('/', function (req, res) { 
  if(req.protocol === 'https') { 
    res.status(200).send('This is https visit!'); 
  } 
  else { 
    res.status(200).send('This is http visit!'); 
  } 
});

코드가 구현된 후 "node app.js" 명령을 사용하여 시작하거나 실행할 수 있습니다. 다른 IDE를 사용하고 브라우저에서 액세스합니다(express는 시스템에 내장된 모듈이 아니므로 npm을 통해 설치해야 합니다).

https를 사용하여 서버에 성공적으로 액세스한 것을 볼 수 있지만 Chrome 브라우저에 빨간색으로 안전하지 않음이 표시됩니다. 이는 이 인증서가 당사에서 자체 제작했으며 제3자 기관에서 확인하지 않았기 때문에 경고입니다. 나타날 것입니다. 다음 블로그에서 공인인증서 신청방법을 소개해드리겠습니다.

Chrome 브라우저에서 개발자 모드를 열면 아래와 같이 보안 페이지에서 현재 페이지의 인증서 정보를 확인할 수 있습니다.

"인증서 보기"를 클릭하면 인증서 세부정보를 볼 수 있습니다.

세부 내용을 확장하면 우리가 인증서 생성 시 입력한 다양한 인증서 정보를 확인할 수 있습니다.

동시에 Postman을 사용하여 클라이언트 요청을 시뮬레이션할 수도 있습니다(실제 개발에서 서버 학생은 클라이언트 학생에게 인증서를 보낼 수 있으며 간단한 구성 후 https 통신이 가능합니다):

http 요청:

https 요청:

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

mpvue 애플릿 프로젝트 구축 방법

VUE2.0에서 Jsonp를 사용하는 단계에 대한 자세한 설명

위 내용은 nodejs express를 사용하여 자체 서명된 https 서버를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.