0

我正在尝试在我的 NodeJS 应用程序(客户端)和 OPCUA 服务器(不是基于 NodeJS)之间建立 OPCUA 连接。我正在使用模块 node-opcua 并且没有加密连接到 OPCUA 服务器没有问题。

但是,我希望我的连接受到保护和加密。我正在尝试使用模块 node-opcua-pki 来生成证书和私钥,但我不知道如何使用这个模块以及在哪里运行这个命令。

我是否必须在命令行或我的 NodeJS 应用程序中运行命令来生成我的证书和私钥?

在此先感谢您的帮助!

4

1 回答 1

0

使用命令行

$ 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);
于 2020-10-20T11:21:58.513 回答