Node.js 在服务器上定位SSL证书、密钥和CA
免责声明:回答此问题不需要知道Node.js 在服务器上定位SSL证书、密钥和CA,node.js,ssl,Node.js,Ssl,免责声明:回答此问题不需要知道节点,但它会有所帮助 我有一个节点服务器,我需要使它与HTTPS的工作。当我在互联网上搜索时,我发现我必须做这样的事情: var fs = require('fs'); var credentials = { key: fs.readFileSync('path/to/ssl/private-key'), cert: fs.readFileSync('path/to/ssl/cert'), ca: fs.readFileSync('path/
节点
,但它会有所帮助
我有一个节点服务器,我需要使它与HTTPS的工作。当我在互联网上搜索时,我发现我必须做这样的事情:
var fs = require('fs');
var credentials = {
key: fs.readFileSync('path/to/ssl/private-key'),
cert: fs.readFileSync('path/to/ssl/cert'),
ca: fs.readFileSync('path/to/something/called/CA')
};
var app = require('https').createServer(credentials, handler);
我对此有几个问题。首先,我发现的所有示例都使用完全不同的方法
证书和密钥的.pem
文件的一些链接。我不知道什么是pem
文件,但我知道我的证书是.crt
,我的密钥是.key
。有些从根文件夹开始,有些似乎只是在应用程序目录中有这些.pem
文件。我不知道
有些人也使用ca
东西,有些人不使用。根据一些文章,这个CA
应该是my domain的CA bundle
,但是没有人解释在哪里可以找到这个文件。在我的服务器上的ssl
目录中,除了一个空的csrs
目录和一个ssl.db
文件之外,还有一个certs
目录中的crt
文件和一个keys
目录中的.key
文件
那么,我在哪里可以找到这3个文件(密钥、证书、ca)以及如何正确链接到它们?这里是区别:
\uuuu dirname
指脚本所在的目录
指调用nodejs命令的位置<代码>。指其父文件夹
例如:
cwd > node script.js
和\u dirname
都将是相同的cwd
cwd > node /path/to/script.js
是cwd
和\u dirname
是/path/to
您的密钥可能是PEM编码的私钥。在linux中运行文件ssl.key
告诉我PEM RSA私钥
,所以这是一种测试方法。否则,您可能必须使用openssl rsa
获取带有一些参数的私钥,请参见谷歌。证书将是您的.crt文件。我不记得从哪里获得了我的证书颁发机构(CA)证书。我想我是从startcom下载的,它与我的密钥和证书一起。哦,路径并不重要,但我会将文件放在子目录中以减少混乱,然后将https.createServer指向相关文件。顺便说一句,如果您希望windows路径正常工作,node可以使用path.join
:var priv=require('path')。join(\uu dirname,“ssl”,“ssl.private.key”)
谢谢。关于路径,我将文件复制到与包含服务器的node\u servers
目录相同级别的ssl
目录中。然而,当我像。/ssl/certificatefilename.crt
那样指向它时,我得到一个错误,说没有这样的文件或目录
。有什么想法吗?尝试使用\uuuu dirname
就像我在第二条评论中使用的那样-\uuuu dirname+“/ssl/certificatefilename.crt”
,\uu dirname指向运行脚本的目录。或者\uuu dirname+”./ssl/certificatefilename.crt“
非常乐意帮助!在这个问题上,我要悬赏给能解释为什么点符号不能正确引用文件以及\uu dirname
的不同之处的人。我敢打赌,如果你能在答案中列出你的文件夹和文件结构,肯定会有很大帮助。编辑:忘记我不能提供新问题,抱歉:谢谢@乔文,这和你的路线相符吗?