5

この質問への回答に基づいて:

https 経由でページを提供するように nodejs/expressjs を構成するにはどうすればよいですか?

私は次のものに相当するものを設定しようとしています:

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

var app = express.createServer();
var appSecure = express.createServer();
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var credentials = crypto.createCredentials({key: privateKey, cert: certificate});
appSecure.setSecure(credentials);


app.get('/secretStuff', function(req,res) {
//redirect to https
}

appSecure.get('/secretStuff', function(req, res) {
//show you the secret stuff
}

これは、expressjs とノード 2.4 の現在のリリースで実行できることですか?

4

2 に答える 2

0

リクエストが入ってきた接続を介してのみ Web ページを提供できます。リクエストが https 経由で届いていない場合、その方法でレスポンスを送信することはできません。

そのため、最初に http と https の両方のリクエストをリッスンする必要があります。セキュリティで保護された接続を介して応答したい要求が http で受信された場合は、処理を行わずに、すぐに https URL にリダイレクトします。その後、クライアントがリクエストを再発行すると、通常どおりに処理します。

フレームワークが JSGI を使用している場合は、おそらくJack のリダイレクト モジュールを使用できますが、それ以外の場合は自分で行う必要があります。詳細はリンクにあります。つまり、応答コード 301 と Location: ヘッダーと https URL です。

于 2011-03-02T20:46:05.263 に答える