Создайте терминатор сокета SSL-сервера

Мне нужно конвертировать EPP (протокол сеанса — https://tools.ietf.org/html/rfc5734) к протоколу HTTP на основе запросов / ответов (JSON). Часть JSON уже написана и работает с несколькими клиентами.

Я смотрел на nginx с помощью веб-сокетов, но веб-сокеты кажутся слишком высокими для необработанного протокола EPP.

Мне нужно решить следующий процесс:

  1. nginx завершает соединение SSL TCP
  2. зачитать запрос EPP (XML) — желательно на PHP
  3. преобразовать в JSON и отправить его на HTTP-сервер
  4. прочитайте результат
  5. преобразовать в XML и отправить его обратно в соединение EPP

Есть ли рекомендуемые технологии в nginx для достижения этой цели? Я могу кодировать сервер сокетов PHP без особых хлопот.

0

Решение

Итак, вы строите сервер EPP? Добро пожаловать в мир EPP от кого-то, кто находится в нем с самого его рождения или даже раньше 🙂

EPP — это «простой» протокол, использующий XML по TLS (как правило, существуют некоторые случаи по HTTPS, и в течение периода разработки они представляли другие предложения, например, по SMTP или BXXP).

Таким образом, как сервер вам нужно что-то, способное обрабатывать завершение TLS и читать XML. Это возможно на любом языке, и это не ракетостроение. Конечно, дьявол кроется в деталях. И вы не предоставляете достаточно деталей / контекста, чтобы точно определить, какие у вас могут быть ограничения или конкретные проблемы.
Так что вы можете быть немного не в теме здесь, потому что написание простого сервера, обрабатывающего TLS и чтение XML, должно быть показано здесь как код, если вы хотите, чтобы люди помогали вам.

Пожалуйста, не забудьте прочитать RFC 5734 несколько раз о конкретных транспортных соображениях. Вам, конечно, нужно помнить, что это протокол с отслеживанием состояния, поэтому, если вы «перенаправляете» запросы внутренне по протоколу без сохранения состояния, вам потребуется выполнить некоторую аутентификацию.

Вам не нужны веб-розетки, на самом деле я не понимаю, почему вы говорите о них. Вам просто нужно завершение TLS, а не HTTPS.

Посмотри на HAProxy это популярный обработчик подобных вещей.

Но опять же, исходя из ваших конкретных (неизвестных) ограничений (особенно количества клиентов, объема запросов, необходимых соглашений об уровне обслуживания и т. Д.), Что-то такое простое, как stunnel Может быть достаточно.

Обратите внимание, что у вас есть mod_epp для Apache. Может быть, не очень жить, но может дать вам идеи. Это позволяет использовать любую CGI-программу под Apache, когда сервер получает фактически кадры EPP, а не HTTP.

В качестве дополнительного примечания, помимо безопасности (но это должно охватываться RFC5734), я бы рекомендовал вам быть осторожным с кодировками, пространствами имен XML и избегать использования нескольких механизмов сериализации в одном потоке (JSON внутри XML — плохая идея, как и XML внутри JSON, но я не знаю точно, как работает ваша часть «convert»).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]