Как настроить node.js на игнорирование самозаверяющих сертификатов. (strict-ssl) [дублировать]

Firestore имеет пределы.

Вероятно, «Deadline Exceeded» происходит из-за его пределов.

См. это. https://firebase.google.com/docs/firestore/quotas

Максимальная скорость записи в документ 1 в секунду

blockquote>

https://groups.google.com/forum/#!msg/google-cloud-firestore-discuss/tGaZpTWQ7tQ/NdaDGRAzBgAJ

196
задан Geuis 4 June 2012 в 22:26
поделиться

8 ответов

Дешевый и небезопасный ответ:

Добавить

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

в коде перед вызовом https.request()

Более безопасный способ (вышеприведенное решение весь процесс узла небезопасен) отвечает в этом вопросе

404
ответ дан Community 25 August 2018 в 07:10
поделиться

Добавьте следующую переменную среды:

NODE_TLS_REJECT_UNAUTHORIZED=0

, например. с export:

export NODE_TLS_REJECT_UNAUTHORIZED=0

(с большой благодарностью Хуанре)

33
ответ дан Armand 25 August 2018 в 07:10
поделиться

Для meteorJS вы можете установить с npmRequestOptions.

HTTP.post(url, {
    npmRequestOptions: {
        rejectUnauthorized: false // TODO remove when deploy
    },
    timeout: 30000, // 30s
    data: xml
}, function(error, result) {
    console.log('error: ' + error);
    console.log('resultXml: ' + result);
});
2
ответ дан digz6666 25 August 2018 в 07:10
поделиться

Вы также можете создать экземпляр запроса с параметрами по умолчанию:

require('request').defaults({ rejectUnauthorized: false })
0
ответ дан Eduardo 25 August 2018 в 07:10
поделиться

не верьте всем тем, кто пытается ввести вас в заблуждение. в вашем запросе просто добавьте:

ca: [fs.readFileSync([certificate path], {encoding: 'utf-8'})]

Если вы включите несанкционированные сертификаты, вы вообще не будете защищены (при использовании MITM для не проверки подлинности), а работа без ssl не будет большая разница. решение должно указать сертификат ЦС, который вы ожидаете, как показано в следующем фрагменте. убедитесь, что общее имя сертификата идентично адресу, который вы вызывали в запросе (как указано в хосте): то, что вы получите, это:

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
    },

Пожалуйста, прочитайте this статьи здесь, чтобы понять:

  • Как работают сертификаты CA
  • Как легко создавать сертификаты CA для тестирования, чтобы имитировать производственную среду
29
ответ дан Hesham Yassin 25 August 2018 в 07:10
поделиться

Добавление в ответ @Armand:

Добавьте следующую переменную среды:

NODE_TLS_REJECT_UNAUTHORIZED = 0, например. с экспортом:

export NODE_TLS_REJECT_UNAUTHORIZED = 0 (с большой благодарностью Хуанре)

Если вы используете Windows:

set NODE_TLS_REJECT_UNAUTHORIZED=0

Благодаря: @ weagle08

7
ответ дан IamStalker 25 August 2018 в 07:10
поделиться

В ваших параметрах запроса попробуйте включить следующее:

   var req = https.request({ 
      host: '192.168.1.1', 
      port: 443,
      path: '/',
      method: 'GET',
      rejectUnauthorized: false,
      requestCert: true,
      agent: false
    },
124
ответ дан Meg Sharkey 25 August 2018 в 07:10
поделиться

Или вы можете попробовать добавить локальное разрешение имен (hosts файл, найденный в каталоге etc в большинстве операционных систем, детали отличаются) примерно так:

192.168.1.1 Linksys 

и next

var req = https.request({ 
    host: 'Linksys', 
    port: 443,
    path: '/',
    method: 'GET'
...

будет работать.

1
ответ дан nalply 25 August 2018 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: