2015-05-14 3 views
1

Мне хорошо знакомы с основами шлюза Bluemix Secure Gateway, но я не вижу хорошего способа настроить то, что наверняка будет распространенным сценарием.Шлюз Bluemix Secure Gateway - внутреннее обслуживание с использованием HTTPS и TLS взаимного auth снаружи?

Мои требования:

  • Существующая внутренняя услуга предоставляется через TLS, и должен оставаться таковым. Он не проверяет сертификаты клиентов, это просто обычный https: // ReST API.
  • Внешний конец канала Secure Gateway должен проверять клиентские сертификаты, чтобы разрешить только определенным известным клиентам.

Второй момент достигается путем выбора опции TLS Mutual Auth при настройке адресата в пользовательском интерфейсе Secure Gateway. Тем не менее, это создает соединение TLS из клиентского приложения (фактически только браузера в этой точке) с внутренним концом канала Secure Gateway. То, что выходит в конце этой трубы, к внутренней службе, является простым HTTP в ясности. Внутренняя услуга правильно отвергает это, так как ожидает HTTPS.

Я могу сделать рабочее соединение, настроив Secure Gateway без TLS, а затем я получаю TLS-соединение от клиентского браузера до самого внутреннего сервера, но проблема в том, что труба Bluemix широко открыта для любого в Интернете, чтобы бросить вещи на внутреннем сервере, и, хотя мы все знаем, что «доверенная внутренняя сеть» должна быть мифом, факт в том, что эта вещь никогда не была настроена на Интернет. Я хочу заблокировать любого, кроме моего известного клиента, на внешнем конце трубы Bluemix.

Я думаю, что мне нужен путь для внутреннего конца трубы, работающего на изображении докера, для запуска второго сеанса TLS с внутренним сервером. Похоже на явно необходимую функцию, но я не могу найти ссылки на нее в документах. Или есть другой способ, который я пропустил?

ответ

1

После публикации этого вопроса, я связался с одним из разработчиков Bluemix (я IBMer - этот вариант может быть недоступен для всех :-)). Ответ заключается в том, что он в настоящее время не поддерживается, но будет реален сейчас.

Я полагаю, что были бы способы зацепить openssl s_client или подобное в поток, но поддерживаемая версия достаточно близка, чтобы для меня не стоило сложности.

+2

Пожалуйста, используйте ссылку для редактирования по вашему вопросу, чтобы добавить дополнительную информацию.Кнопка «Ответ на сообщение» должна использоваться только для полных ответов на вопрос. –

+1

Shrug; Я бы сказал, что это * * полный ответ на вопрос. Ответ: «Вы не можете сделать это сейчас, вы скоро сможете». –

1

Ответ Пита правильный, но поскольку он был проголосован, я буду повторять и добавлять информацию.

В настоящее время вы не можете подключиться к серверу TLS, если вы не используете опцию No TLS, как вы предложили. Вскоре вы сможете выполнить это с помощью настройки, которую вы описываете, назначения, настроенного с помощью TLS: Mutual Auth и TLS от клиента до конечного адресата.

Если вы действительно хотите это сделать, вы можете настроить туннель на своей стороне клиента, чтобы преобразовать TCP-соединение в TLS-соединение. Пример того, как настроить туннель, подобный этому в node.js, приведен ниже в учебнике, но вместо этого вы создадите этот туннель на стороне клиента. Создайте свой пункт назначения с хостом/портом вашего туннеля, а затем подключите туннель к вашему REST API.

https://developer.ibm.com/bluemix/2015/04/17/securing-destinations-tls-bluemix-secure-gateway/

Edit: на стороне клиента TLS была добавлена. Документы для этой функции можно найти здесь: https://www.ng.bluemix.net/docs/services/SecureGateway/index-gentopic3.html#sg_011

Смежные вопросы