Dear People, I running Apache 2.0 and Zope 2.7 on Debian Sarge. I've configured a zope (Plone) instance located /var/lib/zope2.7/instance/dulci. This can be accessed via http://machine_address:9673/dulci. 9673 is the point on which Zope runs on Debian. I'm trying to configure Apache so that all requests of the form http://machine_address/plone are sent to https://machine_address:9673/dulci and that the urls returned by Plone are consistent. I added the following lines to my Apache config, representing my best guess as to how this should work. The rewriting seems to work, since when I go to http://machine_address/plone the log says [Wed Nov 09 03:30:26 2005] [error] [client ...] client denied by server configuration: proxy:http://127.0.0.1:9673/VirtualHostBase/https/machine_address:443/dulci/Virtua... However, something must be broken. This seems to be a relatively straighforward matter, but I've already spent a substantial amount of time on it, so I'd be obliged if someone can point out if I am missing something obvious, as I probably am. Please cc me on any reply. Thanks in advance. ******************************************************************** NameVirtualHost * <VirtualHost *> [...] <IfModule mod_proxy.c> ProxyVia On </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/plone(/.*)?$ http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/dulci/VirtualHostRoot/_vh_plone$1 [L,P] </IfModule> </VirtualHost> ******************************************************************* Faheem.
Faheem Mitha wrote:
the log says
[Wed Nov 09 03:30:26 2005] [error] [client ...] client denied by server configuration:
This means you likely need to find something else in your apache.conf that's causing this problem...
RewriteRule ^/plone(/.*)?$
That's odd.. Why not just: /plone(.*) ? This might actually be your problem, since that question mark means that $1 might not exist for:
http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/dulci/VirtualHostRoot/_vh_plone$1 [L,P]
cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Wed, 9 Nov 2005, Chris Withers wrote:
Faheem Mitha wrote:
the log says
[Wed Nov 09 03:30:26 2005] [error] [client ...] client denied by server configuration:
This means you likely need to find something else in your apache.conf that's causing this problem...
RewriteRule ^/plone(/.*)?$
That's odd..
Why not just:
/plone(.*)
?
This might actually be your problem, since that question mark means that $1 might not exist for:
http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/dulci/VirtualHostRoot/_vh_plone$1 [L,P]
I tried RewriteRule ^/plone(.*) http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/dulci/VirtualHostRoot/_vh_plone$1 [L,P] This does not make any difference. Does this line, and the rest of the config stuff otherwise look Ok? Any idea what I might be looking for in the configuration? I'm mostly using the Debian defaults. Do I correctly understand that this rule will encrypt traffic sent to the Zope instance, and coming out? That is the intention. Thanks in advance. Faheem.
Faheem Mitha wrote:
Why not just:
/plone(.*)
This is the way to go, I don't know what Sascha meant when he was talking about "2 rules". However, he did have a very good point about SSL. If you want Apache to do the SSL encryption and decryption, then you need to set up mod_ssl, sort out the certificates, etc. I have this working on a few of my servers but I'm working offline so can't really have a look to see what you're doing wrong... cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
On Fri, 11 Nov 2005, Chris Withers wrote:
Faheem Mitha wrote:
Why not just:
/plone(.*)
This is the way to go, I don't know what Sascha meant when he was talking about "2 rules".
However, he did have a very good point about SSL. If you want Apache to do the SSL encryption and decryption, then you need to set up mod_ssl, sort out the certificates, etc. I have this working on a few of my servers but I'm working offline so can't really have a look to see what you're doing wrong...
Yes, at least part of the problem is that I did not have SSL set up correctly, and I certainly didn't have certificates etc. I've done that now, so I'll try the Plone thing again. Sorry for my ignorance. Faheem.
On Fri, 11 Nov 2005, Faheem Mitha wrote:
On Fri, 11 Nov 2005, Chris Withers wrote:
Faheem Mitha wrote:
Why not just:
/plone(.*)
This is the way to go, I don't know what Sascha meant when he was talking about "2 rules".
However, he did have a very good point about SSL. If you want Apache to do the SSL encryption and decryption, then you need to set up mod_ssl, sort out the certificates, etc. I have this working on a few of my servers but I'm working offline so can't really have a look to see what you're doing wrong...
Yes, at least part of the problem is that I did not have SSL set up correctly, and I certainly didn't have certificates etc. I've done that now, so I'll try the Plone thing again.
Ok. I've now configured SSL correctly on my test machine, but am still getting errors. I suspect this is an apache misconfiguration, which is puzzling, since I have acess to a machine doing very similar things, also running Debian sarge, which is working. I'll list misc bits of info below, in the hope that this will help to narrow the problem. I'll also list the ssl config portion of my apache file at the bottom of this message for good measure. 1) Firstly, SSL is now working, certificates are offered and accepted, yada yada. 2) I can acess the page at http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/test_plone/VirtualHostRoot/_vh_test_\plone$1 [L,P] fine, where I have to replace 127.0.0.1 with the IP address of the machine in question. This means the Virtual Host Monster is working correctly, right? 3) The rewriting is actually happening, because the rewriting log shows ********************************************************************** client_ip_address - - [11/Nov/2005:18:51:56 --0500] [server_ip_address/sid#81565f0][rid#81ce540/initial] (2) init rewrite engine with requested uri /test_plone/colophon_xhtml.png client_ip_address - - [11/Nov/2005:18:51:56 --0500] [server_ip_address/sid#81565f0][rid#81ce540/initial] (3) applying pattern '^/test_plone(.*)' to uri '/test_plone/colophon_xhtml.png' client_ip_address - - [11/Nov/2005:18:51:56 --0500] [server_ip_address/sid#81565f0][rid#81ce540/initial] (2) rewrite /test_plone/colophon_xhtml.png -> http://127.0.0.1:9673/VirtualHostBase/https/server_ip_address:443/test_plone... client_ip_address - - [11/Nov/2005:18:51:56 --0500] [server_ip_address/sid#81565f0][rid#81ce540/initial] (2) forcing proxy-throughput with http://127.0.0.1:9673/VirtualHostBase/https/server_ip_address:443/test_plone... client_ip_address - - [11/Nov/2005:18:51:56 --0500] [server_ip_address/sid#81565f0][rid#81ce540/initial] (1) go-ahead with proxy request proxy:http://127.0.0.1:9673/VirtualHostBase/https/server_ip_address:443/test_plone... [OK] *********************************************************************** This all looks pretty normal. 4) The error log is fairly unhelpful. Setting LogLevel to debug does not seem to give any helpful information. The main error is [Fri Nov 11 18:51:56 2005] [error] [client client_ip_address] client denied by server configuration: proxy:http://127.0.0.1:9673/VirtualHostBase/https/server_ip_address:443/test_plone..., referer: http://server_ip_address:9673/VirtualHostBase/https/server_ip_address:443/te... 5) Here are the mods I have enabled. /etc/apache2/mods-enabled# ls -la drwxr-xr-x 3 root root 4096 2005-11-11 17:21 . drwxr-xr-x 10 root root 4096 2005-11-11 15:45 .. lrwxrwxrwx 1 root root 37 2005-11-10 16:52 cgid.conf -> /etc/apache2/mods-available/cgid.conf lrwxrwxrwx 1 root root 37 2005-11-10 16:52 cgid.load -> /etc/apache2/mods-available/cgid.load lrwxrwxrwx 1 root root 28 2005-11-11 17:21 proxy.conf -> ../mods-available/proxy.conf lrwxrwxrwx 1 root root 28 2005-11-11 17:21 proxy.load -> ../mods-available/proxy.load lrwxrwxrwx 1 root root 30 2005-11-11 17:19 rewrite.load -> ../mods-available/rewrite.load lrwxrwxrwx 1 root root 26 2005-11-10 21:21 ssl.conf -> ../mods-available/ssl.conf lrwxrwxrwx 1 root root 26 2005-11-10 21:21 ssl.load -> ../mods-available/ssl.load lrwxrwxrwx 1 root root 40 2005-11-10 16:52 userdir.conf -> /etc/apache2/mods-available/userdir.conf lrwxrwxrwx 1 root root 40 2005-11-10 16:52 userdir.load -> /etc/apache2/mods-available/userdir.load These are included via the main config file. 6) I was wondering if there might be something wrong with the Proxy thing. I've kept proxy.conf at the Debian defaults. Included below. In particular ProxyRequest are off, but another Debian machine I have access to works fine with that setting. Thanks in advance for your help. Faheem. ********************************************************************** ssl.conf ********************************************************************** NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin [...] DocumentRoot /var/www/html-ssl <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html-ssl> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place # RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel debug SSLEngine On SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/ssl.key CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> RewriteEngine On RewriteLog /var/log/apache2/rewrite.log RewriteLogLevel 3 RewriteRule ^/test_plone(.*) \ http://127.0.0.1:9673/VirtualHostBase/https/%{HTTP_HOST}:443/test_plone/VirtualHostRoot/_vh_test_\plone$1 [L,P] </VirtualHost> ********************************************************************** *********************************************************************** proxy.conf *********************************************************************** <IfModule mod_proxy.c> #turning ProxyRequests on and allowing proxying from all may allow #spammers to use your proxy to send email. ProxyRequests Off <Proxy *> Order deny,allow Deny from all #Allow from .your_domain.com </Proxy> # Enable/disable the handling of HTTP/1.1 "Via:" headers. # ("Full" adds the server version; "Block" removes all outgoing Via: headers) # Set to one of: Off | On | Full | Block ProxyVia On # To enable the cache as well, edit and uncomment the following lines: # (no cacheing without CacheRoot) CacheRoot "/var/cache/apache2/proxy" CacheSize 5 CacheGcInterval 4 CacheMaxExpire 24 CacheLastModifiedFactor 0.1 CacheDefaultExpire 1 # Again, you probably should change this. #NoCache a_domain.com another_domain.edu joes.garage_sale.com </IfModule>
Am Freitag, den 11.11.2005, 23:45 -0500 schrieb Faheem Mitha:
On Fri, 11 Nov 2005, Faheem Mitha wrote:
...
The main error is
[Fri Nov 11 18:51:56 2005] [error] [client client_ip_address] client denied by server configuration: ^^^^^^^^^^^^^^ This means Apache, not Zope
proxy:http://127.0.0.1:9673/VirtualHostBase/https/server_ip_address:443/test_plone..., referer: http://server_ip_address:9673/VirtualHostBase/https/server_ip_address:443/te...
5) Here are the mods I have enabled. ... Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all ^^^^^^^^^^^^^ <--- and here Allow from 127.0.0.0/255.0.0.0 ::1/128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- and here
</Directory>
is the Problem. The example config needs to be changed to allow serving - this is true for static content as well as using mod_proxy. HTH Tino
On Sat, 12 Nov 2005, Tino Wildenhain wrote: [snip]
5) Here are the mods I have enabled. ... Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all ^^^^^^^^^^^^^ <--- and here Allow from 127.0.0.0/255.0.0.0 ::1/128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- and here
</Directory>
is the Problem. The example config needs to be changed to allow serving - this is true for static content as well as using mod_proxy.
I'm sorry. I don't follow what you mean. Can you be more explicit? The web server is working fine for regular web pages, both SSL and non-SSL. Thanks. Faheem.
Am Samstag, den 12.11.2005, 03:26 -0500 schrieb Faheem Mitha:
On Sat, 12 Nov 2005, Tino Wildenhain wrote:
[snip]
5) Here are the mods I have enabled. ... Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all ^^^^^^^^^^^^^ <--- and here Allow from 127.0.0.0/255.0.0.0 ::1/128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <--- and here
</Directory>
is the Problem. The example config needs to be changed to allow serving - this is true for static content as well as using mod_proxy.
I'm sorry. I don't follow what you mean. Can you be more explicit?
The web server is working fine for regular web pages, both SSL and non-SSL.
Which pages beside the introductional page and the docs? And are you sure you want to access your Plone via http://yourserver/plone/ instead of http://yourserver/ ? Regards Tino
On Sat, 12 Nov 2005, Tino Wildenhain wrote:
Am Samstag, den 12.11.2005, 03:26 -0500 schrieb Faheem Mitha:
Which pages beside the introductional page and the docs?
The pages in the Document Root work fine. That is, the pages at http://yourserver, which correspond to /var/www/html and https://yourserver, which correspond to /var/www/html-ssl. I have a config file called default, which is exactly like the ssl config file, except for being for port 80, and not having the Zope stuff in it. I can mail that if you want. And are you sure you want to access
your Plone via
http://yourserver/plone/ instead of
Yes. Well, https://yourserver/plone. Thanks for your help. Faheem.
On Fri, 11 Nov 2005, Faheem Mitha wrote:
6) I was wondering if there might be something wrong with the Proxy thing. I've kept proxy.conf at the Debian defaults. Included below.
In particular ProxyRequest are off, but another Debian machine I have access to works fine with that setting.
Turns out the problem was indeed with the Proxy, I had to change to Allow from all inside the proxy.conf, to enable reverse proxying. Order deny,allow #Deny from all #Allow from .your_domain.com Allow from all </Proxy> I've now got a further question, in case anyone feels like indulging me. 1) I can still access my plone site unauthenticated via http://machine_address:9673/test_plone. What is the best way to switch that off so it can only be accessed via the https interface? Thanks. Faheem.
Faheem Mitha wrote:
Turns out the problem was indeed with the Proxy, I had to change to Allow from all inside the proxy.conf, to enable reverse proxying.
Order deny,allow #Deny from all #Allow from .your_domain.com Allow from all
I'm not sure an open proxy is that hot an idea, but this has nothing to do with Zope. I suggest you go and ask on #apache on irc.freenode.net
1) I can still access my plone site unauthenticated via http://machine_address:9673/test_plone.
Again, nothing to do with Zope. iptables is the way to go, and I bet £5 you lock yourself out of your machine within 2 hrs of playing with this ;-) Go to #debian on irc.freenode.net and wear flameproof clothing ;-) cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
participants (3)
-
Chris Withers -
Faheem Mitha -
Tino Wildenhain