ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ — прокси-сервер PEP, настроенный на HTTPS

Я хотел бы знать, как настроить прокси-сервер PEP, чтобы я мог обмениваться сообщениями через HTTPS. У меня есть экземпляр брокера контекста Orion, доступ к которому осуществляется только после прохождения через прокси-сервер PEP. Мой файл конфигурации PEP Proxy (Wilma) (config.js) содержит следующее:

config.https = {
   enabled: true,
   cert_file: 'cert/idm.crt',
   key_file: 'cert/idm.key',
   port: 443
};

config.account_host = 'https://localhost:8000';   //account.lab.fiware.org';
config.keystone_host = 'localhost'; //'cloud.lab.fiware.org';
config.keystone_port = 5000; //4731;

config.app_host = 'https://orion'; //'localhost';
config.app_port = ''; //Nginx is configured to redirect to port 1026
// Use true if the app server listens in https
config.app_ssl = true;

config.username = 'pep_proxy_credential_obtained_at_portal';
config.password = 'password_obtained_at_portal';

У меня также есть HTTPS на HTTP (Nginx настроен как обратный прокси-сервер), так что мои запросы, напрямую отправленные в Orion, безопасны. HTTPS работает только без прокси-потока PEP. Когда я вставляю поток авторизации/аутентификации, я сталкиваюсь с проблемами, потому что прокси-сервер PEP не обрабатывает SSL-сертификат. Вот конфигурация Nginx:

location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;

    # Fix the “It appears that your reverse proxy set up is broken" error.
    proxy_pass          http://orion:1026;
    proxy_read_timeout  90;
    proxy_redirect      http://orion:1026 https://orion;
}

Я хочу интегрировать то, что у меня есть, таким образом, чтобы я мог общаться с Orion только по HTTPS, включая поток прокси-сервера PEP. Я искал, но не нашел ничего полезного, связанного с конфигурацией HTTPS в PEP Proxy.

РЕДАКТИРОВАТЬ: возникает ошибка, когда прокси-сервер PEP перенаправляется в приложение:

2017-01-17 20:52:55.544  - INFO: Server - Success authenticating PEP proxy. 
Proxy Auth-token:  d7ec08edd87d43418edfd558df26f427
2017-01-17 20:53:49.450  - INFO: IDM-Client - Checking token with IDM...
2017-01-17 20:53:49.508  - INFO: Root - Access-token OK. Redirecting to app...
Refused to set unsafe header "accept-encoding"
Refused to set unsafe header "content-length"

Ошибка, представленная приложением:

('Connection aborted.', BadStatusLine('HTTP/1.1 0 unknown\r\n',))

person Dalton Cézane    schedule 17.01.2017    source источник
comment
У меня есть сомнения по поводу настройки... либо PEP-ngsix-Orion, либо ngsix-PEP-Orion. Не могли бы вы уточнить, пожалуйста?   -  person fgalan    schedule 18.01.2017
comment
@fgalan, я пытаюсь использовать PEP-Nginx-Orion: запрос отправляется в PEP, а PEP перенаправляется в Orion, к которому Nginx обращается через обратный прокси-сервер. Сейчас я добавлю конфигурацию Nginx в вопрос.   -  person Dalton Cézane    schedule 18.01.2017
comment
Может быть, установка ngnix-PEP-Orion может упростить ситуацию?   -  person fgalan    schedule 18.01.2017
comment
Но в этом случае у меня будет HTTPS только между Nginx и PEP, а PEP может быть размещен на машине, отличной от Orion. Я хотел бы обезопасить канал между клиентом и Орионом. Теперь Nginx настроен вместе с Orion. У вас есть другое предложение @fgalan, чтобы лучше защитить этот канал от начала до конца? Со временем я отключил nginx и проверил доступ к Orion только с использованием прокси-сервера PEP, настроенного на HTTPS: та же ошибка («Соединение прервано», BadStatusLine («HTTP/1.1 0 unknown\r\n») и в PEP: Перенаправление в приложение... Отказано в установке небезопасного заголовка accept-encoding - возможно, проблема в PEP.   -  person Dalton Cézane    schedule 18.01.2017
comment
Попробуйте остановить Orion и запустить nc -l -p 1026 на той же машине, выдавая себя за него. Затем повторите тест, чтобы увидеть, какой именно запрос (если есть) перенаправляет PEP в Orion в этой ситуации. Пожалуйста, опубликуйте результат теста в своем сообщении с вопросом.   -  person fgalan    schedule 18.01.2017
comment
@fgalan, ничего. Ответа нет. Ничего не происходит.   -  person Dalton Cézane    schedule 18.01.2017
comment
У вас есть другие предложения по этой проблеме (Wilma-Nginx-Orion), @fgalan? Я все еще думаю, что это может быть ошибка Вилмы...   -  person Dalton Cézane    schedule 24.01.2017
comment
К сожалению, я знаком не с настройками PEP-Nginx-Orion, а с настройками Nginx-PEP-Orion. В моем случае это имеет смысл, так как соединение PEP-Orion реализовано по защищенному каналу (средствами безопасности L2/L3), поэтому мы стараемся как можно быстрее перейти с HTTPS на HTTP (т.е. на точке nginx). В любом случае, я надеюсь, что команда Wilma сможет проверить, есть ли ошибка в этом программном обеспечении, или запросить дополнительную информацию для устранения неполадок.   -  person fgalan    schedule 26.01.2017
comment
Ах... Я только что понял, что вы сами отвечаете за решение проблемы. Рад видеть, что в конце концов проблема была решена :)   -  person fgalan    schedule 26.01.2017
comment
В любом случае, не могли бы вы дать мне лучшее объяснение вашей конфигурации Nginx-PEP-Orion, @fgalan?   -  person Dalton Cézane    schedule 26.01.2017
comment
По сути, это вопрос настройки Nginx способом, аналогичным тому, который вы описываете в stackoverflow.com/questions/40999447/. Разница в том, что на порту 1026 у вас прослушивается не Orion, а экземпляр PEP, который проксирует реальный Orion (в нашем случае работает на том же хосте через порт 10026). В моем случае я использую не Wilma, а альтернативную реализацию GEi под названием Steelskin (github.com /telefonicaid/fiware-pep-steelskin), хотя теоретически Wilma должна работать так же.   -  person fgalan    schedule 27.01.2017
comment
Хорошо, @fgalan. В этом случае у вас нет PEP-Orion через HTTPS, потому что оба находятся на одной машине, верно? Итак, HTTPS находится только в мировой части Nginx? Спасибо.   -  person Dalton Cézane    schedule 27.01.2017
comment
Да. Однако PEP и Orion могут быть на разных машинах, если есть безопасный канал, например. они находятся в изолированном сегменте дамы L2   -  person fgalan    schedule 27.01.2017


Ответы (2)


Проблема заключалась в https при настройке:

config.app_host = 'https://orion';

Мне пришлось отлаживать, чтобы найти это. Прокси-сервер PEP Wilma добавляет протокол (http или https) к настроенному узлу приложения. Правильно настроить без протокола:

config.app_host = 'orion';

Возможно, это наблюдение можно добавить в документацию Wilma, чтобы избежать таких ошибок, как моя.

person Dalton Cézane    schedule 26.01.2017
comment
Строго говоря, если заданный URL-адрес — http:://orion, то хост — это orion (в то время как http:// — это схема URL-адреса). Тем не менее, я согласен с вами, было бы неплохо добавить примечание об этом в документацию Wilma (возможно, в самом файле config.js.template, как комментарий чуть выше параметра config.app_host). Возможно, вы могли бы даже внести свой вклад в github.com/ging/fiware-pep-proxy. репозиторий с запросом на вытягивание с этим изменением :) - person fgalan; 26.01.2017
comment
Ты прав, @fgalan. Но это немного сбивает с толку, потому что с протоколом работает еще один параметр в файле config.js: account_host = 'http://127.0.0.1'; . Возможно, его можно было бы стандартизировать, включая конфигурацию портов: один передается как int ( config.keystone_port = 5000; ), другой как строка ( config.app_port = '1026'; ). знак равно - person Dalton Cézane; 26.01.2017

Вы можете настроить прокси-сервер PEP для прослушивания HTTPS, используя параметр «https» в файле конфигурации.

https://github.com/ging/fiware-pep-proxy/blob/master/config.js.template#L7

person Álvaro Alonso    schedule 17.01.2017
comment
Я уже настроил, как показано в ссылке. Но я получаю эту ошибку: («Соединение прервано», BadStatusLine («HTTP/1.1 0 unknown\r\n»,)) Не могли бы вы мне помочь? - person Dalton Cézane; 17.01.2017
comment
Я добавил больше деталей в вопрос о проблеме. Любая помощь приветствуется. - person Dalton Cézane; 18.01.2017
comment
Может ли это быть ошибкой PEP Proxy Wilma? Он уже хорошо протестирован с конфигурацией SSL? - person Dalton Cézane; 23.01.2017