Это мой код для включения https на узле экспресс-сервера.
const express = require("express");
const path = require("path");
const https = require("https");
const fs = require('fs');
const crypto = require('crypto');
const passphrase = 'passphrase';
const options = {
pfx: fs.readFileSync('./cert/test.pfx'),
passphrase: passphrase,
secureOptions: crypto.constants.SSL_OP_NO_TLSv1
| crypto.constants.SSL_OP_NO_SSLv2
| crypto.constants.SSL_OP_NO_SSLv3
| crypto.constants.SSL_OP_NO_TLSv1_2,
}
const port = process.env.PORT || 8083;
const app = express();
...
Это прекрасно работает, если я жестко закодировал ключевую фразу или если парольная фраза находится в переменной.Но когда я пытаюсь прочитать его из process.env.PASSPHRASE, он выдает « mac verify error ».
Я вижу, что переменная process.env устанавливается путем регистрацииэто в приложении.
Я попытался установить переменную следующим образом:
SET PASSPHRASE=passphrase
SET PASSPHRASE='passphrase'
SET PASSPHRASE="passphrase"
и в коде:
passphrase: process.env.PASSPHRASE
passphrase: process.env.PASSPHRASE || 'passphrase'
passphrase: process.env.PASSPHRASE.toString()
ничего из этого не работает.
Я на машине с Windows и вижу, что способ установки переменных среды кажется правильным, так как я также получаю PORT из process.env при запуске сервера.