Получение ERR_CERT_AUTHORITY_INVALID с помощью axios

Я пытаюсь сделать почтовый запрос через https с помощью vue-axios. Однако, поскольку я использую самоподписанный сертификат, который я создал, я получаю следующую ошибку:

net::ERR_CERT_AUTHORITY_INVALID

При поиске я обнаружил, что большинство людей решают это, выполнив следующие действия.

const instance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});
instance.get('https://something.com/foo');

// At request level
const agent = new https.Agent({  
  rejectUnauthorized: false
});
axios.get('https://something.com/foo', { httpsAgent: agent });

Я пробовал оба варианта, но не имел никакого успеха с ними. Я использовал модуль https npm для https.Agent.

кто-нибудь знает, как решить эту проблему? или мне просто перейти с axios на другие модули?

отредактировано:

кусок кода, который я запускаю с ошибкой на данный момент:

const axiosInstance = axios.create({
  baseURL: 'https://localhost:5000',
  httpsAgent: new https.Agent({
    rejectUnauthorized: false
  }),
});
axiosInstance.post('/user', LoginRequest, 
  { headers: { 'Content-Type': 'application/json' } })
    .then(response => this.assignLogin(response.data));

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

иголка:

      const headers = { 'Content-Type': 'application/json' };
      const options = {
          method: 'POST',
          headers: headers,
          rejectUnauthorized: false,
          requestCert: true,
          agent: false,
          strictSSL: false,
      }
      needle.post('https://localhost:5000/user', LoginRequest, options).on('end', function() { })

https:

const options = {
         hostname: 'localhost',
         port: 5000,
         path: '/user',
         strictSSL: false,
         rejectUnauthorized: false,
         secureProtocol: 'TLSv1_method',
         method: 'POST',
         headers: {
           'Content-Type': 'application/json',
         },
       };
       const req = https.request(options, (res) => {
         console.info('statusCode:', res.statusCode);
         console.info('headers:', res.headers);

         res.on('data', (d) => {
           this.assignLogin(d);
         });
       });
       req.on('error', (e) => {
         console.error(e);
       });
       req.write(LoginRequest);
       req.end();

Где твой код?

Varit J Patel 27.03.2019 17:54

добавил часть axios выше

Radaeld 27.03.2019 17:58

Если вы собираетесь пройти через все эти проблемы, чтобы разрешить недействительный сертификат, почему бы не запустить свой сервер в режиме http во время разработки, а затем, когда он будет работать, получить действительный сертификат, соответствующий домену?

AlexC 28.03.2019 03:04

В документах для аксиомы сказано: «httpAgent и httpsAgent определяют пользовательский агент, который будет использоваться при выполнении запросов http и https, соответственно, в узле.js.». Я видел, как они различают браузеры и узлы в документации, поэтому, возможно, эта конфигурация не подходит для браузеров (Vue). По крайней мере у меня тоже не работает.

Pavel A 16.05.2019 20:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
4
12 428
1

Ответы 1

Поскольку вы упомянули, что «используете созданный вами самозаверяющий сертификат», я предполагаю, что вы используете его для локальных тестов разработки. У меня была аналогичная проблема при локальном тестировании в Chrome.

Поскольку это сообщение об ошибке (net::ERR_CERT_AUTHORITY_INVALID) — это способ блокировки Chrome URL-адреса с «небезопасным» сертификатом, вам необходимо решить эту проблему через Chrome, сообщив ему, что вы доверяете сертификату.
Я использую старое решение thisisunsafe. (ИСПОЛЬЗУЙТЕ ЭТО РЕШЕНИЕ, ТОЛЬКО ЕСЛИ ВЫ ДЕЙСТВИТЕЛЬНО ДОВЕРЯЕТЕ СЕРТИФИКАТУ, Т.Е. ЭТО ВАШ СОБСТВЕННЫЙ СЕРТИФИКАТ):

РЕШЕНИЕ: Просто откройте вкладку в Chrome, попробуйте открыть URL-адрес с адресом вашего сервера (в вашем случае https://localhost:5000/). Chrome отобразит предупреждающее сообщение, поэтому щелкните в любом месте окна и введите thisisunsafe. Теперь Chrome разрешит доступ к этому сертификату. Когда вы снова перезагрузите клиент и попытаетесь запросить сервер, он будет работать.

@Dionysis.B stackoverflow.com/a/35275060/10043987

ofri cofri 07.07.2021 21:18

Другие вопросы по теме