Supporting this would be a very good thing, and well worth the investment. One slight addition to the analysis: a lot of services are exposed via firewalls and proxies - and these set-ups are often imposed across large swathes of government by (practically) immutable and poorly designed service contracts - in some cases https is not be available at all (crazy but true!). This may be enforced at a proxy or the router. Rarely are containers directly exposed.
There needs to be a flag - HTTP only, HTTPs only or mixed-mode (default) Rob A On Wed, Apr 15, 2009 at 6:15 AM, Arne Kepp <a...@opengeo.org> wrote: > I was wondering whether we could generate a hostname on startup, like > SSH. However, I dont think you want a certificate without a fully > qualified hostname, and asking the operating systems is probably not > accurate in most cases. So that leaves prompting the user during startup. > > I'd also like to point out again that a lot of users will do the HTTPS > part using an Apache proxy, or a dedicated daemon like Pound. Partially > because you should trust as few programs as possible with the key. So it > should be possible to force redirection to HTTPS even when the container > does not support SSL. > > -Arne > > > Andrea Aime wrote: >> Hey all, >> so I've been looking at how to have GeoServer automatically switch to >> HTTPS when user credentials are on the fence and/or when we do have >> possibly sensible information running over the wire. >> The two use cases I have in mind are: >> - admin console, whenever an administrator logs in and edits >> store/layer information, that should happen over SSL >> - any data transfer that requires the user to authenticate >> (meaning that the user credentials are stored in http basic >> authentication headers, and that the information being >> transferred might be sensible as well). >> >> So basically what seems to be needed is: >> - have the authentication form post to an HTTPS url >> - have all secure pages force a redirect to HTTPS if they >> are hit thru a non secure URL >> - have all OGC service requests using http basic authentication >> switch to HTTPS by default >> - have the responses asking the user to authenticate using >> HTTP basic include a redirect to HTTPS first (that is, first >> redirect to HTTPS, then tell the client that the user does not >> have enough credentials and ask for them using a HTTP 401 >> response. At that point the browser will pop up a user >> credential request, but the whole communication will be >> switched to https already). >> >> Am I missing anything? >> >> There are two more things to discuss. The first is that the >> container might not have SSL enabled. Acegi has a class >> that performs redirection only if SSL is there, but it >> requires one to configure the SSL ports in the application >> context... bah! Not very useful as people can be using >> custom ones... I'll have to find a way to make this runtime >> configurable (maybe turn it into a GeoServerInfo parameter?). >> >> The second issue is, what do we do for development and >> demo (release) purposes? Setting up a SSL layer requires >> one to create a certificate, a keystore and whatnot. >> This guide provides some hint: >> http://docs.codehaus.org/display/JETTY/How+to+configure+SSL >> >> I would say that for development purposes we should setup >> a keystore with a well known setup and give Start.java >> an option to use it, so that we can do tests with both >> SSL enabled or not. The certificate will be valid for localhost >> only, maybe the browser will get grumpy the first time and >> ask us if we want to really trust that self signed certificate, >> but from there on it should be smooth ride. >> >> What about release? The Jetty configuration we ship with >> actually has a keystore ready, one just has to include >> the jetty-ssl.xml config file in the command line. Try >> with: >> java -DGEOSERVER_DATA_DIR=... -jar start.jar etc/jetty.xml etc/jetty-ssl.xml >> >> and then try to connect to http://localhost:8443/geoserver >> and you'll see. >> We could just enable this by default but... as Arne pointed >> out, it would give people a false sense of security, >> since everybody knows the private key of that certificate >> so it's possible to hijack those ssl communications without >> much effort. >> The only way to get real security is to have people >> buy/create and install their own certificates... >> >> Opinions? Help very much appreciated, I'm no security expert ;-) >> Cheers >> Andrea >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Geoserver-devel mailing list >> Geoserver-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/geoserver-devel >> > > > -- > Arne Kepp > OpenGeo - http://opengeo.org > Expert service straight from the developers > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Geoserver-devel mailing list > Geoserver-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel