在Node中编写一个https应用并在Azure应用服务上使用

时间:2019-02-18 04:37:14

标签: node.js azure https azure-web-app-service

我编写了一个node.js应用程序,该应用程序一直在标准Linux服务器上托管。它工作正常,但我想将其移至Azure。我不确定如何更改以下几行:

var options = {
    key:  fs.readFileSync(process.env.CERT_KEY_PATH),
    cert: fs.readFileSync(process.env.CERT_PATH)
};

if (process.env.CERT_BUNDLE) {
  options['ca'] = [
    fs.readFileSync(process.env.CERT_BUNDLE_ONE),
    fs.readFileSync(process.env.CERT_BUNDLE_TWO),
    fs.readFileSync(process.env.CERT_BUNDLE_THREE)
  ]
}

var server = https.createServer(options, app);

我已经读过this guide,它告诉我,我从门户网站上载了文件系统,而不是从文件中读取证书。

然后在我的节点应用程序中我只写var server = http.createServer(...)吗? 并让Azure处理https部分吗?

3 个答案:

答案 0 :(得分:0)

在云环境中部署API服务时,通常应让平台负责SSL解密而不是应用程序,并且不要使用自签名证书。

您需要在NodeJs应用程序前面安装一个负载均衡器(或dig),以通过SSL卸载来卸载https请求。

参考: Application Gateway

答案 1 :(得分:0)

  

我已经阅读了本指南,该指南告诉我,而不是我的认证证书   从文件中读取我在其中上传它们的文件系统   门户。

     

然后在我的节点应用程序中,我是否只写了var server =   http.createServer(...)并让Azure处理https部分吗?

这都是正确的。 SSL终止是App Service的功能。您的代码应仅托管在端口80上。

答案 2 :(得分:-1)

@Sean

您可以按照belwo文章来部署node.js应用程序azure应用程序服务。

Deploy NodeJs application in azure app srevice

请确保根据您的项目设置节点运行时设置。

P.S。-上面发布的链接,我们正在使用Azure CLI部署应用程序。 希望对您有所帮助。