2017-01-17 8 views
1

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

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 Proxy. Я искал, но я не нашел ничего полезного, связанного с конфигурацией HTTPS в PEP-прокси.

EDIT: Существует ошибка, когда 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',)) 
+0

У меня есть сомнения в настройке ... либо PEP-ngsix-Orion, либо ngsix-PEP-Orion. Не могли бы вы уточнить, пожалуйста? – fgalan

+0

@fgalan, я пытаюсь PEP-Nginx-Orion: запрос переходит к перенаправлению PEP и PEP в Orion, к которому обращается через обратный прокси Nginx. Теперь я добавлю конфигурацию Nginx. – Dalton

+0

Возможно, установка ngnix-PEP-Orion может упростить ситуацию? – fgalan

ответ

1

Проблема заключалась в том, что протокол HTTPS в конфигурации:

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

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

config.app_host = 'orion'; 

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

+1

Строго говоря, если данный URL-адрес «http :: // orion», то хост «orion» (в то время как 'http: //' - это схема URL-адреса). Тем не менее, я согласен с вами, что было бы неплохо добавить замечание об этом в документацию Wilma (возможно, в файле config.js.template, как комментарий чуть выше параметра 'config.app_host'). Возможно, вы даже можете внести свой вклад в https://github.com/ging/fiware-pep-proxy репозиторий с запросом на перенос с этим изменением :) – fgalan

+1

Вы правы, @fgalan. Но это немного запутано, потому что другой параметр в файле config.js работает с протоколом: 'account_host = 'http: //127.0.0.1';'. Возможно, он может быть стандартизирован, включая конфигурацию портов: один передается как int ('config.keystone_port = 5000;'), а другой - как строка ('config.app_port = '1026';'). знак равно – Dalton

0

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

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

+0

Я уже настроил, как показано в ссылке. Но я получаю эту ошибку: ('Соединение прервано.', BadStatusLine ('HTTP/1.1 0 unknown \ r \ n',)) Не могли бы вы мне помочь? – Dalton

+0

Я добавил более подробную информацию в вопрос о проблеме. Любая помощь приветствуется. – Dalton

+0

Может ли быть ошибкой PEP Proxy Wilma? Он уже хорошо протестирован с настройкой SSL? – Dalton