我正在尝试在我的 NodeJS 应用程序(客户端)和 OPCUA 服务器(不是基于 NodeJS)之间建立 OPCUA 连接。我正在使用模块 node-opcua 并且没有加密连接到 OPCUA 服务器没有问题。
但是,我希望我的连接受到保护和加密。我正在尝试使用模块 node-opcua-pki 来生成证书和私钥,但我不知道如何使用这个模块以及在哪里运行这个命令。
我是否必须在命令行或我的 NodeJS 应用程序中运行命令来生成我的证书和私钥?
在此先感谢您的帮助!
我正在尝试在我的 NodeJS 应用程序(客户端)和 OPCUA 服务器(不是基于 NodeJS)之间建立 OPCUA 连接。我正在使用模块 node-opcua 并且没有加密连接到 OPCUA 服务器没有问题。
但是,我希望我的连接受到保护和加密。我正在尝试使用模块 node-opcua-pki 来生成证书和私钥,但我不知道如何使用这个模块以及在哪里运行这个命令。
我是否必须在命令行或我的 NodeJS 应用程序中运行命令来生成我的证书和私钥?
在此先感谢您的帮助!
$ npx node-opcua-pki certificate -o mycertificate.pem
mycertificate.pem
这将在当前文件夹中创建一个自签名证书。
.\certificates\PKI\own\private\private_key.pem
如果不存在,这还将创建一个 pki 和关联的私钥。
命令行中有许多选项可让您指定 pki 的位置或证书的特定主题字符串。
$ npx node-opcua-pki certificate --help
const certificateFolder = path.join(process.cwd(), "certificates");
const certificateFile = path.join(certificateFolder, "server_certificate.pem");
const certificateManager = new opcua.OPCUACertificateManager({
rootFolder: certificateFolder,
});
await certificateManager.initialize();
if (!fs.existsSync(certificateFile)) {
await certificateManager.createSelfSignedCertificate({
subject: "/CN=MyCommonName;/L=Paris",
startDate: new Date(),
dns: [],
validity: 365 * 5, // five year
applicationUri: "Put you application URI here ",
outputFile: certificateFile,
});
}
const privateKeyFile = certificateManager.privateKey;
console.log("certificateFile =", certificateFile);
console.log("privateLeyFile =", privateKeyFile);