Тестирование конечной точки https API на локальном хосте со сторонним приложением - PullRequest
0 голосов
/ 03 августа 2020

Я совершенно не знаком с https и тестирую на localhost - пожалуйста, помогите!

Что я делаю

Я пытаюсь заставить стороннее приложение вызывать мою конечную точку REST API , https://localhost:4000/test. Эта третья сторона поддерживает соединения только через https.

Проблема

Я пытаюсь протестировать эту интеграцию на localhost. Для этого я создал самоподписанный сертификат с помощью openssl. Когда эта сторонняя служба вызывает мою конечную точку, https://localhost:4000/test, она возвращает ошибку «Операция не удалась: служба недоступна». В документации описание ошибки:

Error 400301: May be returned when executing Extensions, and the extension point did not respond.

Теория 1: Третья сторона не доверяет моему самозаверяющему сертификату (по сравнению с сертификатом от letsencrypt).

Подсказка №1: почтальону тоже не понравился мой сертификат, и он выдал эту ошибку. Я смог заставить его работать, только отключив флаг «SSL Validation» в Postman.

Подсказка № 2: я помещаю журналы, когда моя /test конечная точка вызывается на моем сервере. Но когда третья сторона запускает событие для вызова моего API, ничего не регистрируется. Кажется, они даже не могут установить соединение с моим сервером.

enter image description here

Theory 2: It doesn't support connections to localhost, only to endpoints deployed on the internet. Not sure how to test this theory other than actually deploying my API on the internet.

node.js snippet

https
  .createServer(
    {
      key: fs.readFileSync("./my-private.key"),
      cert: fs.readFileSync("./my-certificate.crt"),
      passphrase: "secret",
    },
    app
  )
  .listen(PORT, () => {
    console.log(`Listening on https://${HOST}:${PORT}`);
  });

Команда, которую я использовал для подписи сертификата:

openssl x509 -in my-request.csr -signkey my-private.key -out my-certificate.crt

Я заметил одну вещь: когда я подключаюсь к https://localhost:4000 из Firefox, он сообщает мне, что я подключился ненадежно. Это потому, что сертификат не подписан третьей стороной, которую распознает браузер? Как мне убрать эту ошибку go?

введите описание изображения здесь

...