RE: Redirecting HTTP - HTTPS? (second attempt)

2002-07-17 Thread Stuart Stephen

you could use javascript on your non secure http page?

script language=javascript
  window.location = 'https://www.sitename.com'
/script

That would do the trick

Stevie

-Original Message-
From: Steve Baker [mailto:[EMAIL PROTECTED]]
Sent: 17 July 2002 13:02
To: [EMAIL PROTECTED]
Subject: Redirecting HTTP - HTTPS? (second attempt)


--
It appears that much of the code from my first post got wiped out.
Trying the message again here a second time.  Thanks.  -SB
--

Have any of you experienced Tomcat changing the *domain name* of the
request to localhost when you're trying to automatically redirect from
HTTP to HTTPS? We know that it's supposed to change the protocol and the
port, but the domain as well?

Here's the situation:
I have a directory (db) on my site (for the sake of this email,
www.mysite.com) that I want to protect using SSL.  Additionally, I need
any wayward HTTP requests to this directory to be automatically redirected
to HTTPS to ensure that they are SSL-encrypted.

To set this up, I followed the SSL Configuration How-To, created the
keystore, and generated a private key.  I then edited /conf/server.xml and
/WEB-INF/web.xml (details below) to automatically redirect those certain
HTTP requests over to HTTPS.  Finally, I restarted Tomcat.

Now when I reference my HTTPS URL *directly*, SSL kicks in, the browser
padlock is locked, and everything works great:
https://www.mysite.com:8443/db/index.jsp

As I stated, however, I've configured the HTTP request:
http://www.mysite.com:8080/db/index.jsp

To automatically redirect to that HTTPS URL from above:
https://www.mysite.com:8443/db/index.jsp

BUT, for some reason, Tomcat is changing the domain to LOCALHOST:
https://localhost:8443/db/index.jsp

So... basically, Tomcat's got it about 80% right. The protocol and port
were succesfully redirected (http 8080 - https 8443), but the domain was
changed.  This instance of Tomcat is on a remote machine, *NOT* my local
machine, so localhost fails. My question -- why would Tomcat be changing
the server name in such a way?


FYI, here is the relevant code from conf/server.xml:
-
!-- Non-SSL Connector on Port 8080 --
Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8080 minProcessors=5 maxProcessors=75
enableLookups=false redirectPort=8443
acceptCount=10 connectionTimeout=6 debug=0
scheme=http secure=false/

!-- SSL Connector on Port 8443 --
Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8443 minProcessors=5 maxProcessors=75
enableLookups=false
acceptCount=10 connectionTimeout=6 debug=0
scheme=https secure=true
   Factory className=org.apache.coyote.tomcat4.CoyoteServerSocketFactory
clientAuth=false protocol=TLS /
/Connector

!-- Standard Engine --
Engine name=Standard Engine defaultHost=www.mysite.com debug=0
Host name=www.mysite.com
  appBase=/home/baker/jbaker/web
  debug=0
  unpackWARs=false
   Context path= docBase= debug=0 reloadable=true/
/Host
/Engine
-


Here is the relevant code from web.xml:
-
security-constraint
web-resource-collection
   web-resource-nameSecure SSL Access/web-resource-name
   url-pattern/db/*/url-pattern
/web-resource-collection
user-data-constraint
   transport-guaranteeCONFIDENTIAL/transport-guarantee
/user-data-constraint
/security-constraint
-

Note that I have:
* uncommented the SSL connector
* properly set the HTTP connector's redirectPort to SSL's 8443
* changed the Engine's defaulthost to www.mysite.com
* changed the Host's name to www.mysite.com
* set the url-pattern match to /db/* in web.xml
* added the CONFIDENTIAL transport-guarantee

Nothing really extraordinary here.  Moreover, a grep for localhost in
both of these files returns zero results.  I'm just not sure where it's
coming from ... especially when Tomcat seems to be doing everything *else*
correctly here.

Any ideas? Thanks in advance!!

-Steve Baker


p.s. Performing a brute force solution such as:

if (request.getScheme().equals(http)) {
// oops! response.Redirect() to the https URL instead.
}

... at the top of every .jsp in my HTTPS-only directory isn't going to be
the right choice for this particular project.  I will eventually employ
that as a backup to ensure security, but I don't wish to go with that as my
first line of defense...



--
To unsubscribe, e-mail:
mailto:[EMAIL PROTECTED]
For additional commands, e-mail:
mailto:[EMAIL PROTECTED]



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Redirecting HTTP - HTTPS? (second attempt)

2002-07-17 Thread Nikolas A. Rathert

Hi,
I think you left somewhere in your conf-files a localhost. I had the 
same error working on Apache and Tomcat and after some searching I found 
out that I forgot to modify httpd.conf in a way that my server no longer 
  was the localhost but had a real name.

I suggest, that you scan your conf-files for the string localhost . 
That must be the cause  for the error.

Cheers,

Nick

Steve Baker wrote:
 --
 It appears that much of the code from my first post got wiped out.
 Trying the message again here a second time.  Thanks.  -SB
 --
 
 Have any of you experienced Tomcat changing the *domain name* of the 
 request to localhost when you're trying to automatically redirect from 
 HTTP to HTTPS? We know that it's supposed to change the protocol and the 
 port, but the domain as well?
 
 Here's the situation:
 I have a directory (db) on my site (for the sake of this email, 
 www.mysite.com) that I want to protect using SSL.  Additionally, I 
 need any wayward HTTP requests to this directory to be automatically 
 redirected to HTTPS to ensure that they are SSL-encrypted.
 
 To set this up, I followed the SSL Configuration How-To, created the 
 keystore, and generated a private key.  I then edited /conf/server.xml 
 and /WEB-INF/web.xml (details below) to automatically redirect those 
 certain HTTP requests over to HTTPS.  Finally, I restarted Tomcat.
 
 Now when I reference my HTTPS URL *directly*, SSL kicks in, the browser 
 padlock is locked, and everything works great:
https://www.mysite.com:8443/db/index.jsp
 
 As I stated, however, I've configured the HTTP request:
http://www.mysite.com:8080/db/index.jsp
 
 To automatically redirect to that HTTPS URL from above:
https://www.mysite.com:8443/db/index.jsp
 
 BUT, for some reason, Tomcat is changing the domain to LOCALHOST:
https://localhost:8443/db/index.jsp
 
 So... basically, Tomcat's got it about 80% right. The protocol and port 
 were succesfully redirected (http 8080 - https 8443), but the domain 
 was changed.  This instance of Tomcat is on a remote machine, *NOT* my 
 local machine, so localhost fails. My question -- why would Tomcat be 
 changing the server name in such a way?
 
 
 FYI, here is the relevant code from conf/server.xml:
 -
 !-- Non-SSL Connector on Port 8080 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8080 minProcessors=5 maxProcessors=75
enableLookups=false redirectPort=8443
acceptCount=10 connectionTimeout=6 debug=0
scheme=http secure=false/
 
 !-- SSL Connector on Port 8443 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8443 minProcessors=5 maxProcessors=75
enableLookups=false
acceptCount=10 connectionTimeout=6 debug=0
scheme=https secure=true
   Factory className=org.apache.coyote.tomcat4.CoyoteServerSocketFactory
clientAuth=false protocol=TLS /
 /Connector
 
 !-- Standard Engine --
 Engine name=Standard Engine defaultHost=www.mysite.com debug=0
Host name=www.mysite.com
  appBase=/home/baker/jbaker/web
  debug=0
  unpackWARs=false
   Context path= docBase= debug=0 reloadable=true/
/Host
 /Engine
 -
 
 
 Here is the relevant code from web.xml:
 -
 security-constraint
web-resource-collection
   web-resource-nameSecure SSL Access/web-resource-name
   url-pattern/db/*/url-pattern
/web-resource-collection
user-data-constraint
   transport-guaranteeCONFIDENTIAL/transport-guarantee
/user-data-constraint
 /security-constraint
 -
 
 Note that I have:
 * uncommented the SSL connector
 * properly set the HTTP connector's redirectPort to SSL's 8443
 * changed the Engine's defaulthost to www.mysite.com
 * changed the Host's name to www.mysite.com
 * set the url-pattern match to /db/* in web.xml
 * added the CONFIDENTIAL transport-guarantee
 
 Nothing really extraordinary here.  Moreover, a grep for localhost in 
 both of these files returns zero results.  I'm just not sure where it's 
 coming from ... especially when Tomcat seems to be doing everything 
 *else* correctly here.
 
 Any ideas? Thanks in advance!!
 
 -Steve Baker
 
 
 p.s. Performing a brute force solution such as:
 
 if (request.getScheme().equals(http)) {
// oops! response.Redirect() to the https URL instead.
 }
 
 ... at the top of every .jsp in my HTTPS-only directory isn't going to 
 be the right choice for this particular project.  I will eventually 
 employ that as a backup to ensure security, but I don't wish to go with 
 that as my first line of defense...
 
 
 
 -- 
 To unsubscribe, e-mail:   
 mailto:[EMAIL PROTECTED]
 For 

Re: Redirecting HTTP - HTTPS? (second attempt)

2002-07-17 Thread Nikolas A. Rathert

Sorry,
I just answered on a mail where some of the original text was missing. I 
 just saw that you searched for the string in every part.
Then I do not have any idea. Could this problem be a result of 
src-compilation? I have no idea.

Cheers,

Nick

Nikolas A. Rathert wrote:
 Hi,
 I think you left somewhere in your conf-files a localhost. I had the 
 same error working on Apache and Tomcat and after some searching I found 
 out that I forgot to modify httpd.conf in a way that my server no longer 
  was the localhost but had a real name.
 
 I suggest, that you scan your conf-files for the string localhost . 
 That must be the cause  for the error.
 
 Cheers,
 
 Nick
 
 Steve Baker wrote:
 
 --
 It appears that much of the code from my first post got wiped out.
 Trying the message again here a second time.  Thanks.  -SB
 --

 Have any of you experienced Tomcat changing the *domain name* of the 
 request to localhost when you're trying to automatically redirect 
 from HTTP to HTTPS? We know that it's supposed to change the protocol 
 and the port, but the domain as well?

 Here's the situation:
 I have a directory (db) on my site (for the sake of this email, 
 www.mysite.com) that I want to protect using SSL.  Additionally, I 
 need any wayward HTTP requests to this directory to be automatically 
 redirected to HTTPS to ensure that they are SSL-encrypted.

 To set this up, I followed the SSL Configuration How-To, created the 
 keystore, and generated a private key.  I then edited /conf/server.xml 
 and /WEB-INF/web.xml (details below) to automatically redirect those 
 certain HTTP requests over to HTTPS.  Finally, I restarted Tomcat.

 Now when I reference my HTTPS URL *directly*, SSL kicks in, the 
 browser padlock is locked, and everything works great:
https://www.mysite.com:8443/db/index.jsp

 As I stated, however, I've configured the HTTP request:
http://www.mysite.com:8080/db/index.jsp

 To automatically redirect to that HTTPS URL from above:
https://www.mysite.com:8443/db/index.jsp

 BUT, for some reason, Tomcat is changing the domain to LOCALHOST:
https://localhost:8443/db/index.jsp

 So... basically, Tomcat's got it about 80% right. The protocol and 
 port were succesfully redirected (http 8080 - https 8443), but the 
 domain was changed.  This instance of Tomcat is on a remote machine, 
 *NOT* my local machine, so localhost fails. My question -- why would 
 Tomcat be changing the server name in such a way?


 FYI, here is the relevant code from conf/server.xml:
 -
 !-- Non-SSL Connector on Port 8080 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8080 minProcessors=5 maxProcessors=75
enableLookups=false redirectPort=8443
acceptCount=10 connectionTimeout=6 debug=0
scheme=http secure=false/

 !-- SSL Connector on Port 8443 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8443 minProcessors=5 maxProcessors=75
enableLookups=false
acceptCount=10 connectionTimeout=6 debug=0
scheme=https secure=true
   Factory 
 className=org.apache.coyote.tomcat4.CoyoteServerSocketFactory
clientAuth=false protocol=TLS /
 /Connector

 !-- Standard Engine --
 Engine name=Standard Engine defaultHost=www.mysite.com debug=0
Host name=www.mysite.com
  appBase=/home/baker/jbaker/web
  debug=0
  unpackWARs=false
   Context path= docBase= debug=0 reloadable=true/
/Host
 /Engine
 -


 Here is the relevant code from web.xml:
 -
 security-constraint
web-resource-collection
   web-resource-nameSecure SSL Access/web-resource-name
   url-pattern/db/*/url-pattern
/web-resource-collection
user-data-constraint
   transport-guaranteeCONFIDENTIAL/transport-guarantee
/user-data-constraint
 /security-constraint
 -

 Note that I have:
 * uncommented the SSL connector
 * properly set the HTTP connector's redirectPort to SSL's 8443
 * changed the Engine's defaulthost to www.mysite.com
 * changed the Host's name to www.mysite.com
 * set the url-pattern match to /db/* in web.xml
 * added the CONFIDENTIAL transport-guarantee

 Nothing really extraordinary here.  Moreover, a grep for localhost 
 in both of these files returns zero results.  I'm just not sure where 
 it's coming from ... especially when Tomcat seems to be doing 
 everything *else* correctly here.

 Any ideas? Thanks in advance!!

 -Steve Baker


 p.s. Performing a brute force solution such as:
 
 if (request.getScheme().equals(http)) {
// oops! response.Redirect() to the https URL instead.
 }
 
 ... at the top of every .jsp in my HTTPS-only 

Re: Redirecting HTTP - HTTPS? (second attempt)

2002-07-17 Thread Steve Baker


I think you left somewhere in your conf-files a localhost. I had the 
same error working on Apache and Tomcat and after some searching I found 
out that I forgot to modify httpd.conf in a way that my server no 
longer  was the localhost but had a real name.

Right.  In all of the information I gave, I failed to include that Apache 
is connected to Tomcat for this.  Tomcat isn't running as a 
standalone.  Thanks for your response, Nick, I think you're probably right 
(or at least, you're close), but I can't check at this moment to make 
sure.  I'll contact the server admin and see what he thinks.  Since 
localhost does not appear in any of the descriptor files on the Tomcat side 
of things (I've grepped and grepped and grepped, as I mentioned), my only 
guess is that, in this instance, the issue is rooted in Apache.

Can anybody vouch for what Nick has suggested?

The issue now is that it's a virtual host, so explicitly specifying *my* 
particular domain as the machine name in httpd.conf isn't going to 
happen.  :-)  If what you said above is correct, though, my next question 
would be... are there any additional options that I have on the Tomcat side 
of things to make this redirect stay within the same domain name?  (Again, 
outside of building that type of redirect into each of the JSPs and 
servlets themselves.)

Right about now, it sure would be nice for Tomcat to have some more control 
over this, e.g. in the configuration for each Host.  :)  Similar to 
redirectPort in Connector, Tomcat would use the value of an optional, 
user-specified attribute as the domain to send all of its SSL redirects for 
that host:

Host name=foo.mysite.com redirectHost=foo.mysite.com
   appBase=/myapp/web debug=0 unpackWARs=false
[...]
/Host

Heh, now, I don't want this discussion to be about the merits of such an 
option, I'm just hoping there's something *like it* out there in some other 
place that I'm missing, could replicate, etc.  This 
domain-being-rewritten-as-localhost business is a bit maddening.

Thanks for any help you all can offer,

-Steve



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]