通过端口8800,使用NGINX反向代理到Apache,SSL连接无法通过Datapusher应用程序

时间:2017-04-04 18:09:04

标签: apache nginx openssl ckan

我正在为datapusher安装CKAN服务。 CKAN已配置为使用NGINX反向代理,在instructions here之后路由客户端请求。在NGINX中安装并配置了SSL证书。 当尝试使用datapusher应用程序上传文件时,它会失败并且Apache日志会出现此错误:

Mon Apr 03 13:49:10.979179 2017] [:error] [pid 15468] 2017-04-03 13:49:10,979 CRITI [ckanext.datapusher.plugin] {'status_code': 403, 'message': 'An Error occurred while sending the job: 403 Client Error: Forbidden', 'details': u'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\\n<html><head>\\n<title>403 Forbidden</title>\\n</head><body>\\n<h1>Forbidden</h1>\\n<p>You don\\'t have permission to access /job\\non this server.</p>\\n<hr>\\n<address>Apache/2.4.7 (Ubuntu) Server at 127.0.0.1 Port 8800</address>\\n</body></html>\\n'}

当通过openssl测试对datapusher的8800端口的访问时,这是输出:

[Mon Apr 03 13:49:10.981049 2017] [:error] [pid 15468] [remote 127.0.0.1:6855] Error - <type 'exceptions.TypeError'>: notify() takes exactly 3 arguments (2 given) 
open:/etc/ckan> openssl s_client -connect 127.0.0.1:8800
CONNECTED(00000003)
140385459791520:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 275 bytes

datapusher docs使用SSL_Verify配置为绕过SSL here提供了一种解决方法。我试过这个并没有改变。

我认为我需要: 1.强制nginx反向代理允许通过端口8800进行SSL连接(除了443)。要么... 2.配置ckan / datapusher / apache / nginx以绕过端口880上的SSL / https。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为403错误是CKAN向DataPusher发送请求以要求它加载特定资源的点。 DataPusher仅在Apache上运行,因此在HTTP上(而不是HTTPS),因此SSL应该没有问题。检查您的CKAN配置是默认配置:

ckan.datapusher.url = http://127.0.0.1:8800/

DataPusher的SSL_VERIFY设置用于以后的请求 - 当datapusher在ckan.site_url向CKAN发出请求时,您将通过HTTPS通过nginx。您可能需要此设置,具体取决于您的python中的SSL是否兼容。阅读代码,它表明你需要引用,并确保密钥是全部大写。即在你的datapusher_settings.py中:

SSL_VERIFY = 'False'