2013-07-19 11 views
11

Sails.jsでのテスト用にローカルHTTPSサーバを設定しようとしていますか?私はsails.jsでそれを行うためのポインタを見つけることができませんか?特急については、sails.jsでhttpsを設定する方法

var express = require('express'); 
var https = require('https'); 
var http = require('http'); 
var fs = require('fs'); 

// This line is from the Node.js HTTPS documentation. 
var options = { 
    key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), 
    cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') 
}; 

// Create a service (the app object is just a callback). 
var app = express(); 

// Create an HTTP service. 
http.createServer(app).listen(80); 
// Create an HTTPS service identical to the HTTP service. 
https.createServer(options, app).listen(443); 

sails.jsについて考えてみませんか?

+0

http://jsbot.io/node/http-and-https-handle-with-sailsjs –

+0

[stackoverflowの上でこの答えをチェックしてください](http://stackoverflow.com/a/37432523/3567365) – user3567365

答えて

4

最新のv0.9(およびv0.8のいくつかのバージョン)を使用している場合は、config/bootstrap.jsを調べてください。あなたはsails.expressコンテキストを介してあなたのエクスプレスアプリにアクセスできるはずです。そこから私は、あなたがしたいものをそれを行うことができるはずだと思う...

また誰かが#sailsjsにIRCチャンネルが帆のために動作しません、これは上記の彼らのために

module.exports.bootstrap = function (cb) { 
    var fs = require('fs'); 
    sails.config.express.serverOptions = { 
     key: fs.readFileSync('ssl/key.pem'), 
     cert: fs.readFileSync('ssl/cert.pem') 
    }; 
    cb(); 
}; 
+1

ケルト、それは正常に動作します。ローカルテストでは、いくつかの複雑さを避けるために、443の代わりに8443を使用する必要があります。 – lostShip

+0

.keyファイルと.certファイルの場合は問題ありませんか?彼らは.pemsである必要がありますか? – light24bulbs

2

を働いていたと述べましたv0.9.3。私は次の回避策で終わった。多分それはちょうど私ですが、私は帆のv0.9.7のために働いて上記のいずれかを得ることができるが、私はそれはそうのようなconfig/local.jsファイルを編集することで、作業手に入れた

express : {serverOptions : { 
    key: fs.readFileSync('ssl/server-key.pem'), 
    cert: fs.readFileSync('ssl/server-cert.pem'), 
}} 
4

(最初のコースのFSが必要です)。

var fs = require('fs'); 

module.exports = { 
    port: process.env.PORT || 1337, 
    environment: process.env.NODE_ENV || 'development', 

    express: { serverOptions : { 
    key: fs.readFileSync('ssl/key.pem'), 
    cert: fs.readFileSync('ssl/cert.pem') 
    } 
    } 
}; 

私はこれが正しい方法であるとは言いませんが、それは私にとっては効果的です。

恥知らずな自己宣伝 More about this on my blog! エンド恥知らずな自己PR:D

+0

他の2つの方法では、接続しようとしたときにブラウザでSSL接続エラーが発生しましたが、これはうまくいきました。 – crzrcn

2

は、この貢献は、ネイティブモバイルアプリケーションや古いブラウザをサポートするためのソリューションを強化します。

このソリューションは、現代のWebブラウザを使用して自分のSSLサイトにアクセスするときにうまく機能しました。しかし、AFNetworkingライブラリを使用してリクエストを作成しようとしたとき、SSL証明書を認識しませんでした。これは、中間のSSL証明書(caバンドルと呼ばれることもあります)を必要とするiPhoneアプリケーションが原因でした。

次のコードを使用して中間証明書を追加できます。

express: { 
    serverOptions : { 
    key: fs.readFileSync('ssl/key.pem'), 
    cert: fs.readFileSync('ssl/cert.pem'), 
    ca: fs.readFileSync('ssl/intermediate.pem') 
    } 
} 

中間証明書(通常はSSL証明書プロバイダからダウンロードできます)を作成するときは、証明書の順序を正しく取得することが重要です。 このlinuxコマンドは、デバッグに本当に役立ちました。

OpenSSLのs_client -connect yoursite.com:443 -showcerts

sails.jsバージョン0.10について
9

、(locals.jsが存在しない場合、それを作成する)設定/ locals.jsでこれを含む:

var fs = require('fs'); 

module.exports = { 

    ssl : { 
     key: fs.readFileSync('path-to-key.key'), 
     cert: fs.readFileSync('path-to-crt.crt') 
    } 

}; 

出典:https://stackoverflow.com/a/28565113/2459071

+0

これはv0.11.2で機能しました。環境ごとに設定する必要がある場合は、この設定がdevelopment.jsまたはproduction.jsの方が優れていると付け加えます。 Local.jsは、Subversionにチェックインされていない開発者のローカル環境を意味します。 – ryanm

+0

これはうまくいくはずです。 http://jsbot.io/node/http-and-https-handle-with-sailsjs –

+0

@NishchitDhananiありがとう! – JosMarRivera

関連する問題