0

おそらく私は SSL/HTTPS がどのように機能するかを理解していません (おそらく) が、SalesForce の API はコールバックで https 接続を必要とするため、理解しようとしています。

これが私が設定した方法ですapp.js

var http        = require('http');
var https       = require('https');
var privateKey  = fs.readFileSync('private/key.pem', 'utf8');
var certificate = fs.readFileSync('private/cert.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate};



var port        = process.env.PORT || 8080;

http.createServer(app).listen(8081);
https.createServer(credentials, app).listen(port);

などlocalhost:8080でローカルの開発環境にアクセスしています。localhost:8080/profile

これをアドレスバーに入力すると、次のエラーが発生します。

http://i.imgur.com/Hlz0dR5.png

代わりに、その前に明示的に「https://」と入力する必要があります。

SOを見回すと、ミドルウェアの使用を提案する同様の質問がいくつか見られました。

app.use(function(req, res, next) {
    console.log(req.secure);
  if(!req.secure) {
    var url = ['https://', req.get('Host'), req.url].join('')
    console.log(url);

    return res.redirect(url);
  }
  next();
});

ただし、これは機能しません。どこlocalhost:8080にもリダイレクトされません (上記と同じエラーが発生します) 。また、HTTPS 用にポート 8080 を使用する必要があるため、明らかに機能しないlocalhost:8081リダイレクト先に移動します。https://localhost:8081

ここで私が間違っていることについてのアイデアはありますか? デフォルトでHTTPSですべてを実行したいだけです。

4

0 に答える 0