2012-04-25 3 views
2

Linode 서버에서 Node.js 응용 프로그램을 실행 중이며 서버에 SSL이 필요합니다. http://www.namecheap.com/ssl-certificates/comodo/essential-ssl-certificate.aspxSSL 인증서를받는 것이 Node.js 애플리케이션과 어떻게 관련이 있습니까?

내가 전용 IP 주소를 얻을 다음 지침에 따라야 이해 :

는 나는이 같은 하나, 뭔가 구입해야 이해 http://library.linode.com/security/ssl-certificates/commercial

는 내가 이해하지 못하는 것은 어떻게 내 노드 응용 프로그램은이 SSL 인증서에 대해 알고 있습니까? 내 노드 애플리케이션이 신경 써야합니까?

답변

2

https 서버를 실행해야합니다.

expressjs를 실행중인 경우 인증서 및 키를 사용하여 SSL 공급자를 구성 할 수 있습니다.

var express = require('express') 
    , fs = require("fs"); 

var privateKey = fs.readFileSync('security/privatekey.pem').toString(); 
var certificate = fs.readFileSync('security/certificate.pem').toString(); 

// to enable https 
var app = module.exports = express.createServer({key: privateKey, cert: certificate}); 

희망이 있습니다.

편집 :

당신은 체크 아웃 할 수있다이 link -이 사람은 표준 노드 서버 구현을 사용하여 표현되지 않습니다. 그러나 보안 api가 변경되었는지 확실하지 않습니다.이 게시물은 거의 2 세입니다.

1

서버가 사용자에게 신원을 증명하기 때문에 인증서 (및 개인 키)를 사용하여 서버를 구성해야합니다. 서버 인증서는 HTTPS 연결이 시작될 때 TLS 핸드 셰이크 중에 브라우저에 제공됩니다.

이는 서버 자체의 구성에만 영향을 주어야합니다. 서버가 제공하는 실제 응용 프로그램 코드는 이에 대해 알 필요가 없습니다 (잘못된 코드를 통해 개인 키가 누출 될 위험을 줄 이도록해서는 안됩니다).

+0

나는 99 % 동의하지만, 앱이 http 또는 https로 실행되도록 허용하는 경우, 생성시 올바른 기본 프로토콜을 사용할 수 있도록 요청이 어떤 프로토콜을 통해 수신되었는지를 적어도 인식해야합니다. 템플릿 및 응답의 링크 등 –

+0

프로토콜 상대 URL을 사용하면 동적으로이를 수행하지 않아도됩니다. "//stackoverflow.com"의 줄에있는 URL은 자동으로 현재 페이지와 동일한 프로토콜을 사용합니다. 로그인 페이지와 같이 방문자가 https를 통해 특정 '페이지'에만 액세스하도록하려는 경우도 있습니다. – Kitsune

+0

@Kitsune, 프로토콜 관련 URL과 전혀 관련이 없습니다. 이러한 URL을 사용하더라도 서버는 포트 443을 수신 대기하거나 HTTPS를 통해 페이지를 제공하도록 구성하지 않습니다. 그것은 단지 마법에 의해 일어나지 않을 것입니다. – Bruno