准备Loopback以使用SSL

时间:2017-12-24 02:05:28

标签: node.js wordpress ssl openssl loopbackjs

我使用loopback来运行web应用程序的业务逻辑,使用wordpress作为前端。目前,当我测试时,我连接到同一台服务器,并在另一个目录中启动环回,此时在端口3000上运行。我还打开了端口3000到远程连接

然后我可以连接到" example.com:3000"和" example.com:3000 / explorer"

我已成功设置wordpress站点以使用SSL证书,我现在希望设置环回相同,以便我可以通过https连接到端点。

我已按照以下存储库中的说明进行操作:

https://github.com/strongloop/loopback-example-ssl

具体来说我有

在服务器目录下创建了一个名为private的目录。

在该目录中运行以下命令

$ openssl genrsa -out privatekey.pem 1024
  $ openssl req -new -key privatekey.pem -out certrequest.csr
  $ openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

请注意,我不熟悉这些命令。我做了一些搜索,并尽可能地回答了证书的问题

将以下文件作为server

复制到ssl-config.js目录中
var path = require('path');
var fs = require('fs');

exports.privateKey = fs.readFileSync(path.join(__dirname, './private/privatekey.pem')).toString();
exports.certificate = fs.readFileSync(path.join(__dirname, './private/certificate.pem')).toString();

最后我从示例中复制了server/server.js,如下所示

var loopback = require('loopback');
var boot = require('loopback-boot');

var http = require('http');
var https = require('https');
var sslConfig = require('./ssl-config');

var app = module.exports = loopback();

// boot scripts mount components like REST API
boot(app, __dirname);

app.start = function(httpOnly) {
  if (httpOnly === undefined) {
    httpOnly = process.env.HTTP;
  }
  var server = null;
 if (!httpOnly) {
    var options = {
      key: sslConfig.privateKey,
      cert: sslConfig.certificate,
    };
    server = https.createServer(options, app);
  } else {
    server = http.createServer(app);
  }
  server.listen(app.get('port'), function() {
    var baseUrl = (httpOnly ? 'http://' : 'https://') + app.get('host') + ':' + 
app.get('port');
    app.emit('started', baseUrl);
    console.log('LoopBack server listening @ %s%s', baseUrl, '/');
    if (app.get('loopback-component-explorer')) {
      var explorerPath = app.get('loopback-component-explorer').mountPath;
      console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
    }
  });
  return server;
};

// start the server if `$ node server.js`
if (require.main === module) {
  app.start();
}

当我开始环回时,它告诉我它正在https://0.0.0.0:3000

上运行

当我连接到https://www.example.com:3000https://www.example.com:3000/explorer时,端点可用,但Chrome告诉我连接不安全。

我非常希望使用wordpress网站,以及仅使用https进行环回,但这只是因为我知道这是使应用程序安全的最佳起点。

0 个答案:

没有答案