Если я вас правильно понимаю, у вас есть как входящие, так и исходящие подключения, и ваши исходящие подключения к API используют NODE_TLS_REJECT_UNAUTHORIZED
.
Clients --in--> Your Application --out--> API
подключение ваших клиентов входящий в ваше приложение будет по-прежнему ЗЕЛЕНЫМ и безопасным, но ваши исходящие подключения к API по-прежнему будут уязвимы. Поэтому, если кто-то атакует ваше исходящее соединение с API, он может получить все данные.
У вас есть два метода решения этой проблемы:
- Получить «настоящий» сертификат для API.
- «Предварительная авторизация» самозаверяющего сертификата API.
Вы можете загрузить publi c ключ самозаверяющего сертификата и сохранить его в своем NodeJS приложение. Затем в своем запросе просто добавьте:
ca: [fs.readFileSync([certificate path], {encoding: 'utf-8'})]
Это решение позволяет указать сертификат CA, который вы ОЖИДАЕТЕ. Убедитесь, что общее имя сертификата совпадает с адресом, который вы вызвали в запросе (как указано в хосте):
var req = https.request({
host: '192.168.1.1',
port: 443,
path: '/',
ca: [fs.readFileSync([certificate path], {encoding: 'utf-8'})],
method: 'GET',
rejectUnauthorized: true,
requestCert: true,
agent: false
},
Этот метод НАМНОГО безопаснее, чем просто слепая установка «Принять все неизвестное» люди." Таким образом говорится: «Джон не сертифицирован, но я знаю Джона, и это Джон. Просто примите Джона».