📅  最后修改于: 2023-12-03 15:10:41.538000             🧑  作者: Mango
PEM 是一种证书文件格式,具有可读性,容易阅读和用户友好性。大部分的证书颁发机构 (CA) 发布的证书都是 PEM 格式的。而 PKCS12 是另一种证书格式,它与 PEM 格式不同,它是二进制格式,不可读性高,但可以包含证书和密钥。
PKCS12 是一个标准格式的证书和密钥档案。它是一个二进制格式的文件,用于储存加密证书、私钥以及可选的公钥证书。PKCS12 证书可以被用于交换公钥和私钥信息,而且也被广泛应用在数字签名和加密等信息安全领域中。
若已有 PEM 文件,可以使用 OpenSSL 命令轻松生成 PKCS12 证书文件。具体步骤如下:
openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx
可以使用 OpenSSL 命令从 PKCS12 文件中提取证书和私钥。具体步骤如下:
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.pem
同样的,也可以单独提取私钥,具体步骤如下:
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
在 Node.js 中使用 PKCS12 证书,需要使用 Node.js 的 tls
模块。具体实现方式如下:
const fs = require('fs');
const tls = require('tls');
const options = {
pfx: fs.readFileSync('cert.pfx'),
passphrase: 'mypassword'
};
const server = tls.createServer(options, (socket) => {
socket.write('Hello World!');
socket.end();
});
server.listen(8080, () => {
console.log('Server started on port 8080');
});
在 options
中,pfx
属性表示证书的二进制形式,passphrase
属性则表示证书的密码。
PKCS12 证书是一种加密证书和密钥档案格式,它与 PEM 格式具有很大的区别。本文介绍了如何使用 OpenSSL 命令生成 PKCS12 证书、提取证书和密钥,以及如何在 Node.js 中使用 PKCS12 证书。