存在一些类似的线程,但没有一个检查答案或讨论.我正在尝试在快递js上设置https服务器,但我得到了
crypto.js:100 c.context.setKey(options.key); ^ Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
我产生我.csr
和.key
文件与
openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out myserver.csr
一个建议是按照以下说明将.csr转换为.pem:http://silas.sewell.org/blog/2010/06/03/node-js-https-ssl-server-example/
那没用.
但是,express.js文档(http://nodejs.org/api/https.html)将这两个文件显示为.pem.如果这是问题,您如何将.key文件转换为.pem?这种威胁部分有用如何从.key和.crt文件中获取.pem文件?但如果有人知道expressjs需要什么,我觉得这是缺少的组件.
我如何检查文件在ANSI中是否正确,或者如果没有则转换它们?
还有一些关于文件是否应该以-----BEGIN ENCRYPTED PRIVATE KEY-----
或开头的讨论-----BEGIN RSA PRIVATE KEY-----
任何帮助是极大的赞赏.
所以我认为至少有一点术语混淆,你在那里的node.js例子没有帮助重命名一切.pem
.
以下是SSL工作原理的概述:
您生成一对公钥和私钥.出于我们的目的,前者是您的"证书签名请求"(简称CSR),后者是您的私人签名密钥(只是"您的密钥").
如果您想生成自签名证书(这对于本地测试目的很有用),您可以转身并使用您的密钥和CSR来生成证书.这个链接http://www.akadia.com/services/ssh_test_certificate.html非常明确地说明如何在基于*nix的系统上执行此操作.
出于Web浏览器的目的,SSL证书需要由受信任的机构(例如证书颁发机构(CA))共同签名.您支付CA以共同签署您的证书,并证明您与浏览器供应商的真实性(当您的网站向浏览器提供其证书时,他们将为您的网站显示绿色挂锁).
共同签名过程始于您将CSR上传到CA. 然后,他们将获取该CSR并生成您的证书.然后,他们将为您提供一些证书,证书,根证书以及可能的一些中间证书.
然后,您需要形成一个组合证书,证明回溯到浏览器的真实性链.您只是通过连接证书,然后是以根证书结尾的中间证书(按照指定的顺序)完成此操作.这种组合证书是您提交给Web服务器的.
为了使您的Web服务器能够通过SSL提供服务,您需要将您的(组合)证书作为其公共加密密钥(根据请求提供给Web浏览器)和您的私有加密密钥,以便它可以解密网络浏览器发送给它的流量.
所以.现在考虑到所有这些,您应该使用您拥有的CSR并将其提供给您的CA,并获取各种证书,将它们连接起来,然后在您的快速服务器中使用您的私钥.