2
我試圖在Amazon EC2上運行Node.js應用程序時使用SSL和HTTPS。我已通過Name.com購買了RapidSSL證書,並按照this StackOverflow answer的說明正確設置了適用於HTTPS的服務器。下面是相關的代碼:Node.js使用RapidSSL證書時HTTPS服務器沒有響應
var http = require('http'),
https = require('https');
var express = require("express"),
app = express();
var fs = require('fs');
...
app.set('certificate', fs.readFileSync('/path/to/cert.pem', 'utf8'));
app.set('privateKey', fs.readFileSync('/path/to/privateKey.pem', 'utf8'));
...
http.createServer(app).listen(app.get('port'), function() {
console.info('Listening on port %d', app.get('port'));
});
var options = {key: app.get('privateKey'), cert: app.get('certificate')};
https.createServer(options, app).listen(app.get('sslPort'), function() {
console.info('HTTPS listening on port %d', app.get('sslPort'));
});
當我使用自簽名證書在本地運行服務器,一切都忽視了安全警告後可以正常工作。但是,當我將代碼部署到EC2實例時,程序運行時沒有發生錯誤,但是當我使用HTTPS訪問域時,服務器不返回任何內容,並且瀏覽器超時。用HTTP請求站點仍然正常工作。
我已經在Chrome和cURL中試過這個。該證書是針對www
子域頒發的,但根據Name.com它也應該與根域一起使用。我試圖在子域和根域上查詢網站,達到相同的效果。
在此先感謝您的幫助。
我不認爲它會破壞某些東西,但是你不需要這些readFileSync調用的''''''''''''''''''。 – loganfsmyth 2014-11-09 02:42:44
在EC2服務器上,證書和密鑰是否位於指定位置?對於EB服務器,這可能是一個問題 – 2015-01-12 19:47:33