2012-04-25 10 views
2

私はLinodeサーバー上でNode.jsアプリケーションを実行しており、サーバーにはSSLが必要です。SSL証明書を取得すると、Node.jsアプリケーションとどのように関連しますか?

私は、私は1つを購入する必要があり、このような何かを理解する:私は、専用のIPアドレスを取得し、これらの指示に従ってくださいする必要があります理解しhttp://www.namecheap.com/ssl-certificates/comodo/essential-ssl-certificate.aspx

を:http://library.linode.com/security/ssl-certificates/commercial

私は理解していないことはどのように私ですノードアプリケーションはこのSSL証明書について知っていますか?私のNodeアプリケーションは気になるのですか?

答えて

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}); 

希望するものがあります。

EDIT:

あなたがチェックアウトすることができ、このlink - この男は、標準のノードサーバの実装を使用して表現されていません。しかし、セキュリティapiが変更されたかどうかはわかりません。この投稿は2歳近くです。

1

サーバーが証明書(およびその秘密キー)を使用して構成されている必要があります。証明書がユーザーにそのIDを証明するからです。サーバー証明書は、HTTPS接続が開始されるTLSハンドシェイク中にブラウザに表示されます。

これは、サーバー自体の構成にのみ影響します。サーバーによって提供される実際のアプリケーションコードは、それについて知る必要はありません(誤ったコードを介して秘密鍵を漏らすリスクを減らすために、おそらくはそうすべきではありません)。

+0

私はこれに同意しますが、httpまたはhttpsのいずれかでアプリケーションを実行できるようにする場合は、生成するときに正しい基本プロトコルを使用できるように、要求がどのプロトコルを経由したのかを少なくとも認識する必要があります。テンプレートと応答のリンクなど –

+0

プロトコルの相対URLを使用すると、動的にそれを行う必要がなくなります。 "//stackoverflow.com"の行にあるURLは、自動的に現在のページと同じプロトコルを使用します。ただし、訪問者がhttps経由で特定の「ページ」にしかアクセスしないようにしたい場合もあります(ログインページなど)。 – Kitsune

+0

@Kitsune、これはプロトコルに関連するURLとは全く関係ありません。このようなURLを使用しても、サーバーはポート443をリッスンさせることも、HTTPS経由でページを提供するようにサーバーを構成することもできません。それはただの魔法によって起こるつもりはない。 – Bruno

関連する問題