Узел HTTPS - Mac проверяет сбой при чтении ключевой фразы из process.env - PullRequest
0 голосов
/ 09 мая 2019

Это мой код для включения 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 при запуске сервера.

1 Ответ

0 голосов
/ 09 мая 2019

Вскоре после публикации вопроса я понял, что это должно быть ошибка в том, как я устанавливаю переменную среды.

Вот как я устанавливал переменную и запускал приложение:

SET HTTPS_PASSPHRASE=passphrase && node server-prod.js

кажется, что все, что требовалось, - это удалить пробел до &&

SET HTTPS_PASSPHRASE=passphrase&& node server-prod.js

, причем пространство также считалось частью значения переменной.Я не осознал этого раньше, поскольку в console.log

не появлялось завершающее пространство
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...