2016-04-26 2 views
6

Мое приложение работает под HTTPS с действительным сертификатом от одного из известных авторитетов. К сожалению, я использую сторонний API, который не поддерживает HTTPS.Вызов небезопасной конечной точки с сайта работает под HTTPS - nginx

В результате известное сообщение смешанное содержание: mydomain.com запросила небезопасное XMLHttpRequest конечной точки.

Можно добавить исключение к веб-серверу, чтобы вызов этого API небезопасным !! Я использую Nginx BTW.

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

У меня есть решение, но мне не нравится, потому что это будет производительность недостаток:

Реализовать API, который действует как прокси-сервер, получать запросы от приложения через HTTPS и сделать запросы сторонний API выдает HTTP.

+0

ли мой ответ решить эту проблему? Если вам нужна помощь в настройке, я могу. – khrm

+0

@khrm даст ему попробовать завтра и обновит вас –

ответ

3

Я тоже был этот вопрос. Все на странице должно появиться и запросить https, если вы используете https и не хотите предупреждения/ошибок. Вам не нужно реализовывать api для прокси, если вы используете nginx. Независимо от того, что вы реализуете, будет достигнута производительность, как вы правильно догадались. Просто используйте прокси-проход в nginx. В нашей конфигурации мы имеем:

location /thirdparty/ { 
     proxy pass http://thirdpartyserver/; 
} 

Обратите внимание на косую черту в прокси-проход, я держу все апи третьей стороны, которые являются HTTP в https://myserver/thirdparty/requesturl. При прокручивании косой черты удаляет третью сторону во время запроса. Таким образом, становится, http://thirdpartyserver/request

Официальная справка: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

0

Чтобы разрешить смешанный контент, отдельные пользователи должны разрешить его в своих браузерах. Разрешить HTTP-контент из одного источника достаточно, чтобы поставить под угрозу безопасность HTTPS, поэтому браузеры запрещают смешанный контент по умолчанию. Решения, которые я вижу, являются:

  1. Избавление от HTTPS (который я бы не рекомендовал)
  2. делать то, что вы предложили и запросы проксирование через (это еще не велика с точки зрения безопасности)
  3. Избавиться содержимого HTTP

Google имеет некоторые рекомендации для разработчиков по шагу 1 (но они в основном вторит выше): https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1

+0

Спасибо за ответ ур, я бы не избавился от HTTPS. прочитал эту статью, но не нашел, что ищу, опубликовал это, поскольку кто-то может дать другую идею. –

+0

Да, эта статья в основном изложила то, что я сказал выше. Это печально с точки зрения удобства использования, но имеет первостепенное значение с точки зрения безопасности, что смешанное содержимое заблокировано – winhowes