Включение SSL-сертификата в пн go с пн goose и Express - PullRequest
0 голосов
/ 09 марта 2020

Я не могу понять, как добавить сертификат SSL на свой сервер. js, чтобы я мог получить доступ к своему API на сервере через https.

var express = require('express'),
    cors = require('cors'),
    app = express(),
    port = process.env.PORT || 3000,
    mongoose = require('mongoose'),
    Task = require('./api/models/todoListModel'), //created model loading here
    bodyParser = require('body-parser'),
    helmet = require('helmet');

// Test SSL connection
var MongoClient = require('mongodb').MongoClient;

// mongoose instance connection url connection
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/Tododb');  // was tododb

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

// adding Helmet to enhance your API's security
app.use(helmet());

// enabling CORS for all requests
app.use(cors());

app.get('/', (req, res) => res.send('Hello World!'))

var routes = require('./api/routes/todoListRoutes'); //importing route
routes(app); //register the route

app.listen(port);

console.log('Supporter RESTful API server started on: ' + port);

Я пытался mongoose.connect('mongodb://localhost/Tododb&ssl=true');, но Я действительно не знаю, что делать после этого? Я понимаю, что должен добавить ссылку на сгенерированные мной файлы ключей и сертификатов, но не могу понять, как добавить их в строку подключения.

Я пытался выполнить некоторые из этих https://docs.mongodb.com/manual/reference/connection-string/

Какой следующий шаг?

1 Ответ

0 голосов
/ 10 марта 2020

Следующим шагом является предоставление ConnectionOptions для вызова mon goose .connect. В документации mon goose (по адресу https://mongoosejs.com/docs/connections.html#options) указано, что она будет передавать опции ssl, указанные c, в базовый MongoClient. Опции для MongoClient можно найти по адресу: http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect

Те, которые вас интересуют, это, вероятно, sslCert, sslKey и, возможно, sslPass (наряду с некоторыми другими настройками ssl *). ). Обратите внимание, что те, что я перечислил здесь, могут потребовать от вас загрузки файла в коде самостоятельно. Вы можете использовать что-то вроде:

var fs = require('fs');
var options = {
    ...
    sslCert: fs.readFileSync(path.join(__dirname, <relative path to the cert>))
};
mongoose.connect('mongodb://localhost/Tododb', options);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...