我使用的是快速框架的Node.js创建一个web服务器。 我想要的运输是基于SSL。
创建HTTPS Web服务器的代码如下所示。
var app = express.createServer({
key: fs.readFileSync('./conf/key.pem'),
cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;
问:如何创建快递所需的key.pem和cert.pem?
我使用的是快速框架的Node.js创建一个web服务器。 我想要的运输是基于SSL。
创建HTTPS Web服务器的代码如下所示。
var app = express.createServer({
key: fs.readFileSync('./conf/key.pem'),
cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;
问:如何创建快递所需的key.pem和cert.pem?
你需要两个文件是一个PEM编码的SSL证书和私钥。 PEM编码的证书和密钥编码的文本与看起来像开始/结束分隔符的Base64 -----BEGIN RSA PRIVATE KEY-----
或相似。
要建立首先需要生成私钥和证书签名请求,或企业社会责任(其中还包含你的公钥)的SSL证书。你可以用各种不同的方式做到这一点,但这里是如何在OpenSSL的。
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
这将导致你进入一个互动提示生成一个2048位的RSA私钥和有选择的提示输入所有信息的CSR。 ( 注:通用名称是在那里你会想把你将使用访问您的网站的域名。)一旦你做到了这一点,你通常会提交该CSR到受信任的证书颁发机构,一旦他们确认你的要求,你会收到一份证书。
如果你不关心你的证书被信任(通常用于开发目的的情况下),你可以创建一个自签名的证书。 要做到这一点,我们可以使用几乎相同的路线,但我们会通过两个额外的参数。
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
这会给你一个证书(有效期为10年)和密钥对,你可以在代码中使用片断您发布。
只要按照步骤操作:
创建要在其中存储密钥和证书文件夹:
mkdir conf
进入该目录:
cd conf
抓住这个ca.cnf
文件作为配置快捷键的使用方法:
wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf
使用此配置创建一个新的证书颁发机构:
openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem
现在,我们有我们的认证机构ca-key.pem
和ca-cert.pem
,让我们为服务器生成私钥:
openssl genrsa -out key.pem 4096
抓住这个server.cnf
文件作为配置快捷键的使用方法:
wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf
生成使用该配置的证书签名请求:
openssl req -new -config server.cnf -key key.pem -out csr.pem
签名的请求:
openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem
我发现这个方法在这里 ,一起关于如何使用这些证书的详细信息。