2

我的 Linode 服务器上运行了一个 Node.js 应用程序,我的服务器需要 SSL。

我知道我需要购买一个,如下所示: http: //www.namecheap.com/ssl-certificates/comodo/essential-ssl-certificate.aspx

我了解我需要获得一个专用 IP 地址并遵循以下说明: http: //library.linode.com/security/ssl-certificates/commercial

我不明白的是我的 Node 应用程序如何知道这个 SSL 证书?我的 Node 应用程序关心吗?

4

2 回答 2

2

您应该运行 https 服务器。

如果您正在运行 expressjs,您可以执行类似的操作 - 使用您从 ssl 提供商处获得的证书和密钥。

var express = require('express')
  , fs = require("fs");

var privateKey = fs.readFileSync('security/privatekey.pem').toString();
var certificate = fs.readFileSync('security/certificate.pem').toString();  

// to enable https
var app = module.exports = express.createServer({key: privateKey, cert: certificate});

希望有帮助。

编辑:

您可以查看此链接- 这个人使用的是标准节点服务器实现而不是 express。但是我不确定安全 api 是否发生了变化——这篇文章已经有将近 2 年的历史了。

于 2012-04-25T13:15:52.447 回答
1

您的服务器需要配置证书(及其私钥),因为它向用户证明了自己的身份。在 TLS 握手期间,当 HTTPS 连接开始时,服务器证书将呈现给浏览器。

这只会影响服务器本身的配置。服务器提供的实际应用程序代码不需要知道它(并且可能不应该,以减少通过错误代码泄漏私钥的风险)。

于 2012-04-25T13:22:44.257 回答