websocket(socket.io)で双方向通信を行いたいと実装していますが、サーバー作成時(createServer)にエラーが出て解決に困っております。
環境
Windows Server 2019
Node.js
IIS
IISマネージャーのサーバー証明書で自己証明書を作成し、pfxをエクスポートし配置、その時に設定したダウンロードをpassphraseに設定しています。
var fs = require("fs"); var https = require("https"); var app = require("express")(); var options = { pfx: fs.readFileSync("./server.pfx"), passphrase: "password" }; app.get("/", (request, response)=>{ response.writeHead(200); response.end(); }); https.createServer(options, app).listen(10433);
上記スクリプトをnode.jsで実行すると、mac verify failureというエラーが発生してしまいます。
問題文から逃げちゃうアプローチになるんですが
https://www.ipentec.com/document/windows-server-iis-setup-reverse-proxy-using-application-request-routing
こんな風にIISには別マシンや別IPにリクエストを受け流すリバースプロキシという機能が存在します。
Node.jsのWebサーバは適当に3000番ポートなどでhttpsではなく、httpで動作させておいて
IISにHTTPS通信のやり取りを任せてしまい、そこから先をNode.jsに処理を委譲してやってもらうという分担は出来るかと思います。
私はLinuxでWebサーバを立ち上げたこともありますが、
その時もHTTPSの処理をNode.jsで頑張るのではなくApacheやNginx等のWebサーバソフトを間に噛ませて良い感じにやってもらうという分担でやってました。
ご回答いただきありがとうございました。
リバースプロキシというものは知りませんでした。
本日実装してみたところうまくいきそうでしたので、この方法で進めたいと思います。
非常に助かりました!
ありがとうございました。
あなたの回答
tips
プレビュー