我有一个 Node.js 应用程序在我的 Linode 服务器上运行,我的服务器需要 SSL。
我知道我需要购买一个,像这样:http://www.namecheap.com/ssl-certificates/comodo/essential-ssl-certificate.aspx
我知道我需要获取一个专用 IP 地址并按照以下说明进行操作:http://library.linode.com/security/ssl-certificates/commercial
我不明白的是我的节点应用程序如何知道这个SSL证书?我的节点应用程序关心吗?
你应该运行一个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});
希望有帮助。
编辑:
您可以查看此链接 - 这家伙使用的是标准节点服务器实现而不是表达。但是我不确定安全 API 是否已更改 - 这篇文章已有近 2 年的历史。
您的服务器需要配置证书(及其私钥),因为它向用户证明其身份。服务器证书在 TLS 握手期间(HTTPS 连接启动时)呈现给浏览器。
这应该只影响服务器本身的配置。服务器提供的实际应用程序代码不需要知道它(并且可能不应该知道,以便降低通过不正确的代码泄露私钥的风险)。