Node хранилище сертификатов, node только чтение из жесткого кодированного списка сертификатов?

После долгой борьбы, есть ли способ добавить новый сертификат в список сертификатов 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 лет, и из того, что я исследовал, ситуация такая же и сегодня)

Ответ 1

Вы называете их жестко закодированным "списком сертификатов"... список - это сертификат, предоставляющий полномочия, а не сертификаты... текущее поведение преднамеренно по уважительным причинам... было бы очень плохо, если веб-сервер (nodejs ) предоставил Green Padlock для незарегистрированных игрушек, подписанных самостоятельно.

Я предлагаю вам использовать более совершенную технику для синтеза ваших сертификатов, которые дадут вам действительные сертификаты, которые позволят этому Green Padlock...

Запустите этот учебник, чтобы получить действующие сертификаты (бесплатно) для вашего домена, готовые к производству... также gr8 для запуска шин: https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/