После долгой борьбы, есть ли способ добавить новый сертификат в список сертификатов node доверяет?
Кажется, что node будет доверять только для сертификатов, хранящихся в жестком закодированном списке сертификатов: https://github.com/nodejs/node/blob/master/src/node_root_certs.h
Так, например, приложение node должно связываться с https://foo-bar-baz.com
, которое использует самоподписанный сертификат, вызывая запрос в этот домен, чтобы вернуть что-то вроде: [RequestError: Error: certificate has expired]
По-видимому, как это можно зафиксировать в java, добавление сертификата https://foo-bar-baz.com
в $JAVA_HOME/lib/security/cacerts
.
Проверяет ли node только сертификаты из указанного жесткого кодированного списка? или он может читать также из некоторого хранилища сертификатов ОС? Если только из жесткого кодированного списка:
- Почему? Что может быть причиной его реализации таким образом?
- Если какой-либо сертификат подделывается, только то, что можно сделать, - это ждать следующей версии node?
- Если вы хотите добавить самозаверяющий сертификат, невозможно?
(Можно было бы редактировать, вероятно, жестко закодированный список, чтобы добавить/удалить сертификат, но я не чувствовал бы себя комфортно с изменением источника node, также из аналогичного вопроса Где node 's certificate store? можно добавить сертификат во время выполнения запроса, но это не входит в этот вопрос. Аналогичный вопрос вывешен до 2 лет, и из того, что я исследовал, ситуация такая же и сегодня)