Получение https для работы с файлом pfx на NodeJS с Restify - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть следующий код, который успешно устанавливает конечную точку http и https с помощью узла & restify.

import * as fs from 'fs';
import * as restify from 'restify';
import { settings } from './config/config';
import { Logger } from './services/Logger';
import corsMiddleware = require('restify-cors-middleware');

var compression = require('compression');
var helmet = require('helmet');

var httpOptions = { name: settings.name, key: fs.readFileSync('./Certificate/key.pem'), certificate: fs.readFileSync('./Certificate/cert.pem') }

export let httpServer = restify.createServer({ name: settings.name });
export let httpsServer = restify.createServer(httpOptions);

// Bunch of configuration done here removed ...

httpServer.listen(settings.httpPort, function () {
    Logger.info(`INFO: ${httpServer.name} is running at ${httpServer.url}`);
  });

httpsServer.listen(settings.httpsPort, function () {
    Logger.info(`INFO: ${httpsServer.name} is running at ${httpsServer.url}`);
  });

Когда это запускается, я получаю следующий вывод:

ИНФОРМАЦИЯ: служба отслеживания работает на http://[::]:8082

ИНФОРМАЦИЯ: Служба отслеживания работает на https://[::]:8443

И я могу успешно подключиться через http и https. Теперь я хочу перейти на использование pfx вместо этого, и поэтому попробовал этот код

import * as fs from 'fs';
import * as restify from 'restify';
import { settings } from './config/config';
import { Logger } from './services/Logger';
import corsMiddleware = require('restify-cors-middleware');

var compression = require('compression');
var helmet = require('helmet');

var httpOptions = { name: settings.name, httpsServerOptions: { pfx: fs.readFileSync('./Certificate/systema.pfx'), passphrase: 'passphrase' } }
// Also tried this to no avail
//var httpOptions = { name: settings.name, pfx: fs.readFileSync('./Certificate/systema.pfx'), passphrase: 'passphrase' }

export let httpServer = restify.createServer({ name: settings.name });
export let httpsServer = restify.createServer(httpOptions);

// Bunch of configuration done here removed ...

httpServer.listen(settings.httpPort, function () {
    Logger.info(`INFO: ${httpServer.name} is running at ${httpServer.url}`);
  });

httpsServer.listen(settings.httpsPort, function () {
    Logger.info(`INFO: ${httpsServer.name} is running at ${httpsServer.url}`);
  });

Но это генерирует вывод

ИНФОРМАЦИЯ: Служба отслеживания работает на http://[::]:8082

ИНФОРМАЦИЯ: Служба отслеживания работает на http://[::]:8443

Обратите внимание на http: // во второй строке.

Есть идеи о том, что я могу сделать, чтобы опция pfx работала?

...