Hi Chris,

Sorry, If I did confuse. It’s important that
https://server.lbg.com:8443/towl is always working. Goal is not to disable
/towl, but just redirect or aliasing

https//example.lbg.com/ to https://server.lbg.com:8443/towl




Thanks,
Lavanya

On Monday, May 13, 2024, Christopher Schultz <ch...@christopherschultz.net>
wrote:

> Lavanya,
>
> On 5/13/24 05:57, lavanya tech wrote:
>
>> Somehow made it work now i can only access urls as you mentioned before
>> https://example.lbg.com and https://server.lbg.com with port 8443 and
>> with
>> out
>>
>>   https://example.lbg.com/towl and https://server.lbg.com/towl --> I
>> have an
>> error now File not found.
>>
>> So i think we need to make work https://example.lbg.com/ to
>> https://server.lbg.com/towl
>>
>
> I'm sorry, I'm still confused as to which way you want things.
>
> Do you want to redirect /towl -> / or do you want to redirect / - > /towl?
>
> Or does it depend upon the hostname? It would really be better if you
> could settle on one specific beahvior.
>
> -chris
>
> On Mon, May 13, 2024 at 9:41 AM lavanya tech <lavanyatech...@gmail.com>
>> wrote:
>>
>> Hi Chris,
>>>
>>> Where are you defining the RewriteValve itself?
>>>
>>> Defined rewritevalve here
>>>        <Host name="localhost"  appBase="webapps"
>>>              unpackWARs="true" autoDeploy="true">
>>>
>>>            <Valve
>>> className="org.apache.catalina.valves.rewrite.RewriteValve" />
>>>                   resource="conf/rewrite.config" />
>>>
>>> 2) reated rewrite.config and added as below under conf/
>>>
>>>   RewriteCond %{REQUEST_URI} ^/towl/(.*)
>>>   RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R]
>>>
>>> 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I
>>> already have this mappings /* in web.xml file)
>>>
>>>     <security-constraint>
>>>        <web-resource-collection>
>>>          <web-resource-name>Logging Area</web-resource-name>
>>>          <description>
>>>          Authentication for registered users.
>>>          </description>
>>>          <url-pattern>/*</url-pattern>
>>>          <url-pattern>/api/v1/search</url-pattern> <!-- protect search
>>> endpoint whitelisted above -->
>>>          <url-pattern>/api/v1/suggest/*</url-pattern> <!-- protect
>>> suggest
>>> endpoint whitelisted above -->
>>>        </web-resource-collection>
>>>          <auth-constraint>
>>>              <role-name>LDAP_USER</role-name>
>>>              <role-name>api</role-name>
>>>          </auth-constraint>
>>>      </security-constraint>
>>>
>>> 4) Restarted Tomcat, Then I cannot access https://server.lbg.com:8443/to
>>> wl
>>> --> Have below error
>>>
>>> Message java.nio.file.NoSuchFileException:
>>> /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar
>>>
>>> Description The server encountered an unexpected condition that prevented
>>> it from fulfilling the request.
>>>
>>> 5) Also https://example.lbg.com doesnot work anymore
>>>
>>> Before you do anything with redirecting, can you just make sure you are
>>> only deploying ROOT.war and nothing else?
>>>      How can I do that. I already changed towl.war to ROOT.war
>>>
>>> But still both the urls have error as mentioned above.
>>>
>>>
>>> Si I revereted back the changes.
>>> That's weird. Try stopping, deleting the work/ directory and restarting.
>>> --> I have this wierd behavior for some reason, thoudh index.jsp is
>>> located
>>> no changes were made to file. After deleting cookies url works
>>>
>>> where Am I going wrong.
>>>
>>> Thanks,
>>> Lavanya
>>>
>>>
>>> On Fri, May 10, 2024 at 6:50 PM Christopher Schultz <
>>> ch...@christopherschultz.net> wrote:
>>>
>>> Lavanya,
>>>>
>>>> On 5/10/24 04:37, lavanya tech wrote:
>>>>
>>>>> I tried the below and have the issues.
>>>>>
>>>>> 1)proxyPort="443" and proxyName="example.lbg.com" to the connector
>>>>> 2) remanmed towl.war to ROOT.war
>>>>> 3) created rewrite.config and added as below under conf/
>>>>>
>>>>
>>>> Where are you defining the RewriteValve itself?
>>>>
>>>> RewriteCond %{REQUEST_URI} ^/towl/(.*)
>>>>> RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R]
>>>>>
>>>>
>>>> If this is being handled by the ROOT servlet then I think it's right.
>>>>
>>>> 4) added this in web.xml file of /webapps/towl/web.xml/
>>>>>
>>>>>     <!-- Servlet mappings -->
>>>>>       <!-- Add your existing servlet mappings here -->
>>>>>
>>>>>       <!-- Security constraint to restrict access to /towl path -->
>>>>>       <security-constraint>
>>>>>           <web-resource-collection>
>>>>>               <web-resource-name>Restricted Access to
>>>>> /towl</web-resource-name>
>>>>>               <url-pattern>/towl/*</url-pattern>
>>>>>
>>>>
>>>> No, this is wrong. Since this is the "towl" application and not ROOT,
>>>> you want to map /* and not /towl/* because the application will never
>>>> see the /towl/ as it's an application/context prefix that Tomcat will
>>>> remove.
>>>>
>>>>           </web-resource-collection>
>>>>>           <auth-constraint>
>>>>>               <!-- Deny access to all roles -->
>>>>>           </auth-constraint>
>>>>>       </security-constraint>
>>>>>
>>>>> Also I noticed that even if I rename the towl application to ROOT, when
>>>>>
>>>> i
>>>>
>>>>> call the url with https://example.lbg.com/towl --> this towl directory
>>>>>
>>>> is
>>>>
>>>>> getting created under webapps by default
>>>>>
>>>>
>>>> If webapps/towl is being created, then it's happening for some other
>>>> reason. Do you have anything under conf/Catalina/*/towl.xml which points
>>>> to a WAR file or something? If so, remove that.
>>>>
>>>> 5) Resarted tomcat and I have the below error and all the urls have the
>>>>> same issue
>>>>>
>>>>> Message org.apache.jasper.JasperException:
>>>>> java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
>>>>>
>>>>
>>>> That's weird. Try stopping, deleting the work/ directory and restarting.
>>>>
>>>> Description The server encountered an unexpected condition that
>>>>>
>>>> prevented
>>>>
>>>>> it from fulfilling the request.
>>>>>
>>>>> Exception
>>>>>
>>>>> org.apache.jasper.JasperException: org.apache.jasper.JasperException:
>>>>> java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
>>>>>
>>>>> org.apache.jasper.servlet.JspServletWrapper.handleJspExcepti
>>>> on(JspServletWrapper.java:578)
>>>>
>>>>>
>>>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServl
>>>> etWrapper.java:422)
>>>>
>>>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl
>>>>> et.java:380)
>>>>> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
>>>>> jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>>>>>
>>>>
>>>> Before you do anything with redirecting, can you just make sure you are
>>>> only deploying ROOT.war and nothing else?
>>>>
>>>> This should allow you to reach the application at both
>>>> https://example.lbg.com/ and https://server.lbg.com/ as well as both of
>>>> those with port 8443.
>>>>
>>>> Then use the applications and make sure they are working as expected.
>>>> Then, we'll add the /towl handling.
>>>>
>>>> -chris
>>>>
>>>> On Thu, May 9, 2024 at 11:20 PM Christopher Schultz <
>>>>> ch...@christopherschultz.net> wrote:
>>>>>
>>>>> Lavanya,
>>>>>>
>>>>>> On 5/9/24 13:48, lavanya tech wrote:
>>>>>>
>>>>>>> Thank you so much for your explanation. I will try these options.
>>>>>>>
>>>>>>> Do server and example both resolve to the same IP?
>>>>>>>            -yes
>>>>>>>
>>>>>>
>>>>>> Good, that significantly reduces the complexity required, since you
>>>>>> can
>>>>>> do it will a single process (Tomcat) in a single environment.
>>>>>>
>>>>>> So I need follow both 4a/b and 5a/b steps here or any of them ?
>>>>>>>
>>>>>>> If I setup exactly by using below steps , then I should access both
>>>>>>>
>>>>>> the
>>>>
>>>>> urls right ? https://server.lbg.com:8443/towl and
>>>>>>>
>>>>>> https://example.lbg.com
>>>>>>
>>>>>> If you visit either hostname with /towl, you will be redirected to
>>>>>> example.lbg.com/ with no port number. example:8443 will still work
>>>>>> and
>>>>>> no redirect will take place... unless you specifically make
>>>>>>
>>>>> arrangements
>>>>
>>>>> for that. We can do that later if you really want to.
>>>>>>
>>>>>> Let's get the other things working, first.
>>>>>>
>>>>>> -chris
>>>>>>
>>>>>> On Thursday, May 9, 2024, Christopher Schultz <
>>>>>>>
>>>>>> ch...@christopherschultz.net>
>>>>>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Lavanya,
>>>>>>>>
>>>>>>>> On 5/9/24 02:58, lavanya tech wrote:
>>>>>>>>
>>>>>>>> Just giving background again of this topic again.
>>>>>>>>>
>>>>>>>>> 1) The application team who is working they wanted to access the
>>>>>>>>> url
>>>>>>>>> https://server.lbg.com:8443/towl —> which should redirect or point
>>>>>>>>>
>>>>>>>> to
>>>>
>>>>> https://example.lbg.com
>>>>>>>>>
>>>>>>>>> Is that a typo? You want specifically https://server.lbg.com/towl
>>>>>>>>>
>>>>>>>> and
>>>>
>>>>> https://example.lbg.com/ to point to your application?
>>>>>>>>>                   — It’s not the Typo the requirements are still
>>>>>>>>> the
>>>>>>>>>
>>>>>>>> same.
>>>>>>
>>>>>>>
>>>>>>>>>
>>>>>>>> Okay.
>>>>>>>>
>>>>>>>> Do server and example both resolve to the same IP?
>>>>>>>>
>>>>>>>> 2) Hence I added firewall rule to redirect port 443 to 8443. And the
>>>>>>>>
>>>>>>> url
>>>>
>>>>> https://example.lbg.com started working but its pointing to
>>>>>>>>> https://server.lbg.com:8443 indeed and not
>>>>>>>>>
>>>>>>>> https://server.lbg.com:8443/to
>>>>>>
>>>>>>> wl
>>>>>>>>>
>>>>>>>>> But then they wanted the point 1 to have it. If I understood
>>>>>>>>>
>>>>>>>> correctly. So
>>>>>>
>>>>>>> basically to achieve this we wanted a reverse proxy setup ?
>>>>>>>>>
>>>>>>>>> I didnot define any additional host in server.xml file on just left
>>>>>>>>>
>>>>>>>> to
>>>>
>>>>> default to  local host.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> Here's what you have to do in order to support this odd
>>>>>>>>
>>>>>>> configuration.
>>>>
>>>>>
>>>>>>>> 1. Configure your firewall to route port 443 -> 8443. I suspect this
>>>>>>>>
>>>>>>> is
>>>>
>>>>> already done.
>>>>>>>>
>>>>>>>> 2. Deploy Tomcat on server.lbg.com with a <Connector> on port 8443.
>>>>>>>>
>>>>>>> This
>>>>>>
>>>>>>> is the default, so there shouldn't be anything to do. I suspect this
>>>>>>>>
>>>>>>> is
>>>>
>>>>> already done. You should set proxyPort="443" and proxyName="
>>>>>>>> example.lbg.com" in your <Connector>. This will ensure that any
>>>>>>>> URLs
>>>>>>>> generated by Tomcat or your application will point to
>>>>>>>> https://example.lbg.com/ and not to server.lbg.com or have a port
>>>>>>>>
>>>>>>> number
>>>>>>
>>>>>>> or whatever.
>>>>>>>>
>>>>>>>> 3. Re-name your application directory or WAR file from towl -> ROOT
>>>>>>>>
>>>>>>> (upper
>>>>>>
>>>>>>> case is important). So if you have tomcat/webapps/towl re-name that
>>>>>>>>
>>>>>>> to
>>>>
>>>>> tomcat/webapps/ROOT or if you have tomcat/webapps/towl.war re-name
>>>>>>>>
>>>>>>> that
>>>>
>>>>> to
>>>>>>
>>>>>>> tomcat/webapps/ROOT.war.
>>>>>>>>
>>>>>>>> The last thing to do is get /towl to re-direct to /. There are a few
>>>>>>>>
>>>>>>> ways
>>>>>>
>>>>>>> of doing that.
>>>>>>>>
>>>>>>>> 4a. Configure your application (now called ROOT and deployed on /
>>>>>>>> and
>>>>>>>>
>>>>>>> not
>>>>>>
>>>>>>> /towl anymore) to handle the /towl URL and specifically redirect this
>>>>>>>>
>>>>>>> back
>>>>>>
>>>>>>> to /. This is oddly specific and has the application trying to
>>>>>>>>
>>>>>>> redirect
>>>>
>>>>> to
>>>>>>
>>>>>>> itself which is weird.
>>>>>>>>
>>>>>>>> 4b. Create a new application called towl or towl.war which will be
>>>>>>>> deployed on /towl and have THAT redirect to /. I think this is
>>>>>>>>
>>>>>>> cleaner
>>>>
>>>>> because you can call the application anything you'd like and it will
>>>>>>>>
>>>>>>> still
>>>>>>
>>>>>>> work. You don't have to match URL patterns yourself, you just re-name
>>>>>>>>
>>>>>>> the
>>>>>>
>>>>>>> WAR file if you suddenly want to use /towl2 instead of /towl.
>>>>>>>>
>>>>>>>> There are several ways to redirect.
>>>>>>>>
>>>>>>>> 5a. Use the rewrite valve and map /(*) to (global redirect) /\1. A
>>>>>>>>
>>>>>>> few
>>>>
>>>>> notes: (1) the (*) means "capture this string" and \1 means "put the
>>>>>>>>
>>>>>>> string
>>>>>>
>>>>>>> back. This allows you to redirect /towl/foo/bar to /foo/bar instead
>>>>>>>>
>>>>>>> of
>>>>
>>>>> losing the /foo/bar. This syntax may not be perfect, adapt it to your
>>>>>>>> needs. (2) Remember that the towl application is deployed on /towl
>>>>>>>> so
>>>>>>>>
>>>>>>> you
>>>>>>
>>>>>>> don't want to redirect /towl/foo/bar you only want redirect /foo/bar
>>>>>>>>
>>>>>>> since
>>>>>>
>>>>>>> the URL will be relative to the current context (/towl). Got that?
>>>>>>>>
>>>>>>> Finally,
>>>>>>
>>>>>>> (3) you need to use a global redirect that does *NOT* redirect back
>>>>>>>>
>>>>>>> to
>>>>
>>>>> the
>>>>>>
>>>>>>> /towl application. Normally, if you redirect to /foo you'll get an
>>>>>>>> application-relative redirect from something like a rewrite
>>>>>>>> valve/filter/whatever. Take care to redirect relative to the SERVER
>>>>>>>>
>>>>>>> and
>>>>
>>>>> not
>>>>>>
>>>>>>> to the application.
>>>>>>>>
>>>>>>>> 5b. Write your own servlet to do a specific redirect.
>>>>>>>>
>>>>>>>> I hope that helps,
>>>>>>>> -chris
>>>>>>>>
>>>>>>>> On Wednesday, May 8, 2024, Christopher Schultz <
>>>>>>>>
>>>>>>>>> ch...@christopherschultz.net>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Lavanya,
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 5/8/24 06:48, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> I figured out how I can it make it work with 443. Now the URls are
>>>>>>>>>>
>>>>>>>>>>> working.
>>>>>>>>>>> I added iptables route 443 to 8443 and it started working.
>>>>>>>>>>>
>>>>>>>>>>> nslookup example.lbg.com
>>>>>>>>>>>
>>>>>>>>>>> Non-authoritative answer:
>>>>>>>>>>> Name:    server.lbg.com
>>>>>>>>>>> Address:  192.168.200.105
>>>>>>>>>>> Aliases:  example.lbg.com
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I have some application towl running with apache tomcat. I have
>>>>>>>>>>>
>>>>>>>>>> the
>>>>
>>>>> below
>>>>>>>>>>> URLs working.
>>>>>>>>>>>
>>>>>>>>>>> https://server.lbg.com:8443/towl
>>>>>>>>>>> https://server.lbg.com
>>>>>>>>>>> https://example.lbg.com
>>>>>>>>>>> https://example.lbg.com/towl
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Now i wanted to disable the url https://example.lbg.com/towl and
>>>>>>>>>>> https://server.lbg.com and access only the other remaining two.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I would *highly* recommend that you pick either /towl or / and not
>>>>>>>>>>
>>>>>>>>> try to
>>>>>>
>>>>>>> do both, unless you want to deploy the application twice (which is
>>>>>>>>>>
>>>>>>>>> fine,
>>>>>>
>>>>>>> just deploy towl.war and ROOT.war as copies of each other). If you
>>>>>>>>>>
>>>>>>>>> try to
>>>>>>
>>>>>>> re-write /towl to / or / to /towl, you'll find you spend the rest
>>>>>>>>>>
>>>>>>>>> of
>>>>
>>>>> your
>>>>>>
>>>>>>> days tracking-down edge-cases and "fixing" them -- likely making
>>>>>>>>>>
>>>>>>>>> things
>>>>>>
>>>>>>> confusing and, probably, worse.
>>>>>>>>>>
>>>>>>>>>> In the end our goal to makesure that the links are not  always
>>>>>>>>>>
>>>>>>>>> dead as
>>>>
>>>>> soon
>>>>>>>>>>
>>>>>>>>>> as the towl is moved to a new machine. Can you pelase assit me how
>>>>>>>>>>>
>>>>>>>>>> to do
>>>>>>
>>>>>>> that?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The goal should be that "moving" the application only means
>>>>>>>>>>
>>>>>>>>> changing
>>>>
>>>>> DNS
>>>>>>
>>>>>>> and everything else works as expected.
>>>>>>>>>>
>>>>>>>>>> If you:
>>>>>>>>>>
>>>>>>>>>> 1. Deploy the application with a single context (e.g. /towl, which
>>>>>>>>>>
>>>>>>>>> I
>>>>
>>>>> recommend)
>>>>>>>>>>
>>>>>>>>>> 2. Re-direct / to /towl (this requires a reverse-proxy or a ROOT
>>>>>>>>>> application that does nothing but redirect ; my personal
>>>>>>>>>>
>>>>>>>>> preference)
>>>>
>>>>>
>>>>>>>>>> 3. Do not define any <Host> other than "localhost" and make it the
>>>>>>>>>> default. Do not bother with any <Alias> elements since they are
>>>>>>>>>> not
>>>>>>>>>> necessary.
>>>>>>>>>>
>>>>>>>>>> Moving the application should only require that you:
>>>>>>>>>>
>>>>>>>>>> 4. Deploy the same application with the same configuration in the
>>>>>>>>>>
>>>>>>>>> new
>>>>
>>>>> location
>>>>>>>>>>
>>>>>>>>>> 5. Change DNS to point example.lbg.com and server.lbg.com to the
>>>>>>>>>>
>>>>>>>>> new
>>>>
>>>>> location of the service
>>>>>>>>>>
>>>>>>>>>> Hope that helps,
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Tue, Apr 30, 2024 at 5:44 PM Christopher Schultz <
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Lavanya,
>>>>>>>>>>
>>>>>>>>>> On 4/30/24 07:10, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Can you tell me how to do the below ? How should I setup Tomcat in
>>>>>>>>>> server.xml ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If you want to use port 443 (the default port for HTTPS) then you
>>>>>>>>>>
>>>>>>>>> will
>>>>
>>>>> need to change Tomcat to bind to port 443 (if that's allowed on
>>>>>>>>>>
>>>>>>>>> your
>>>>
>>>>> OS)
>>>>>>
>>>>>>> or arrange to have port 443 routed to port 8443. You may need
>>>>>>>>>>
>>>>>>>>> additional
>>>>>>
>>>>>>> configuration in Tomcat (specifically: proxyPort) to avoid having
>>>>>>>>>>
>>>>>>>>> Tomcat
>>>>>>
>>>>>>> generate URLs with ":8443" in them.
>>>>>>>>>>
>>>>>>>>>> Looking forward to your reply.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If Tomcat is listening on port 8443 then you will need to include
>>>>>>>>>>
>>>>>>>>> that
>>>>
>>>>> in your URL, period. If you want to allow URLs without a port
>>>>>>>>>>
>>>>>>>>> number,
>>>>
>>>>> you will have to arrange to have something listening on port 443.
>>>>>>>>>>
>>>>>>>>>> On Windows, Tomcat can listen directly on port 443. On UNIX and
>>>>>>>>>> UNIX-like systems, you won't be able to do this without running
>>>>>>>>>>
>>>>>>>>> Tomcat
>>>>
>>>>> as root WHICH YOU ABSOLUTELY SHOULD NOT DO.
>>>>>>>>>>
>>>>>>>>>> There are other ways to get port 443 working, but I'll need to
>>>>>>>>>> know
>>>>>>>>>>
>>>>>>>>> more
>>>>>>
>>>>>>> about your environment. The port issue is "easier" than figuring
>>>>>>>>>>
>>>>>>>>> out
>>>>
>>>>> whatever is going on with your DNS, aliases, etc. so I would
>>>>>>>>>>
>>>>>>>>> recommend
>>>>
>>>>> we fix one thing at a time.
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Mon, Apr 29, 2024 at 2:03 PM lavanya tech <
>>>>>>>>>>
>>>>>>>>> lavanyatech...@gmail.com>
>>>>>>
>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Chris,
>>>>>>>>>>
>>>>>>>>>> There is no issues with browser, because I tested with different
>>>>>>>>>>
>>>>>>>>>> browsers
>>>>>>>>>>
>>>>>>>>>> and it all works fine. I am sure that there is no issue with the
>>>>>>>>>> certificate.
>>>>>>>>>>        Because I was able to establish successful connections with
>>>>>>>>>>
>>>>>>>>> port
>>>>
>>>>>
>>>>>>>>>> 8443, it
>>>>>>>>>>
>>>>>>>>>> just doesnot work with out port
>>>>>>>>>>
>>>>>>>>>>        curl  https://example.lbg.com/towl
>>>>>>>>>> curl: (56) Received HTTP code 504 from proxy after CONNECT
>>>>>>>>>> curl: (56) Received HTTP code 504 from proxy after CONNECT
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If you want to use port 443 (the default port for HTTPS) then you
>>>>>>>>>>
>>>>>>>>> will
>>>>
>>>>> need to change Tomcat to bind to port 443 (if that's allowed on
>>>>>>>>>>
>>>>>>>>> your
>>>>
>>>>> OS)
>>>>>>
>>>>>>> or arrange to have port 443 routed to port 8443. You may need
>>>>>>>>>>
>>>>>>>>> additional
>>>>>>
>>>>>>> configuration in Tomcat (specifically: proxyPort) to avoid having
>>>>>>>>>>
>>>>>>>>> Tomcat
>>>>>>
>>>>>>> generate URLs with ":8443" in them.
>>>>>>>>>>
>>>>>>>>>> <Connector port="443" protocol="HTTP/1.1"
>>>>>>>>>>                  connectionTimeout="20000"
>>>>>>>>>>                  redirectPort="8443"
>>>>>>>>>>                  maxThreads="150"
>>>>>>>>>>                  scheme="https" secure="true" SSLEnabled="true"
>>>>>>>>>>                  keystoreFile="path_to_your_keystore_file"
>>>>>>>>>>                  keystorePass="your_keystore_password"
>>>>>>>>>>                  keystoreType="PKCS12"
>>>>>>>>>>                  clientAuth="false" sslProtocol="TLS"
>>>>>>>>>>                  proxyPort="443"/>
>>>>>>>>>>
>>>>>>>>>> should i use connect port like the above ?  But you mentioned
>>>>>>>>>>
>>>>>>>>> before
>>>>
>>>>> we
>>>>>>
>>>>>>> dont need any configuration changes. Please clarify I am not able
>>>>>>>>>>
>>>>>>>>> to
>>>>
>>>>>
>>>>>>>>>> figure
>>>>>>>>>>
>>>>>>>>>> this out and I have this issue many days pending. How to make it
>>>>>>>>>>
>>>>>>>>> work
>>>>
>>>>>
>>>>>>>>>> with
>>>>>>>>>>
>>>>>>>>>> port 8443 and with out port
>>>>>>>>>>
>>>>>>>>>> Also I wanted to use weburl with alias name permanently instead of
>>>>>>>>>>
>>>>>>>>> the
>>>>
>>>>> hostname. How can I achieve both
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Lavanya
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>         -->
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Apr 26, 2024 at 9:28 PM Christopher Schultz <
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Lavanya,
>>>>>>>>>>
>>>>>>>>>> On 4/25/24 07:24, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Chris,
>>>>>>>>>>
>>>>>>>>>> One question / doubt:
>>>>>>>>>>
>>>>>>>>>> As I mentioned earlier, the below URLS already working in the
>>>>>>>>>>
>>>>>>>>> browser
>>>>
>>>>>
>>>>>>>>>> https://server.lbg.com:8443/towl
>>>>>>>>>> https://example.lbg.com:8443/towl -> redirect ( which means when
>>>>>>>>>> I
>>>>>>>>>>
>>>>>>>>>> hit in
>>>>>>>>>>
>>>>>>>>>> browser) it points to https://server.lbg.com:8443/towl ---> To be
>>>>>>>>>>
>>>>>>>>>> frank,
>>>>>>>>>>
>>>>>>>>>> even I donot need redirect here, not sure why it redirects.
>>>>>>>>>>
>>>>>>>>>> My question is why its working even though SAN is not registered
>>>>>>>>>>
>>>>>>>>> with
>>>>
>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> certificate ? It doesnot even throw warning in the browser.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm not sure. Is it possible you have dismissed this error in the
>>>>>>>>>>
>>>>>>>>> past
>>>>
>>>>> and the browser is remembering that? Try this with a different web
>>>>>>>>>> browser or maybe with curl from the command-line to see what
>>>>>>>>>>
>>>>>>>>> happens.
>>>>
>>>>>
>>>>>>>>>> Why https://server.lbg.com/towl or https://example.lbg.com/towl
>>>>>>>>>>
>>>>>>>>> -->
>>>>
>>>>>
>>>>>>>>>> How it
>>>>>>>>>>
>>>>>>>>>> should work with New SAN certificate ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> You don't need to worry about the port number or application name,
>>>>>>>>>>
>>>>>>>>> only
>>>>>>
>>>>>>> the hostname is a part of the SAN.
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Thu, Apr 25, 2024 at 10:16 AM lavanya tech <
>>>>>>>>>>
>>>>>>>>>> lavanyatech...@gmail.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Chris,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks I will request new certificate with SANs and I will try to
>>>>>>>>>>
>>>>>>>>> fix
>>>>
>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> things from our end.
>>>>>>>>>>
>>>>>>>>>> Best Regards,
>>>>>>>>>> Lavanya
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz <
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Lavanya,
>>>>>>>>>>
>>>>>>>>>> On 4/24/24 15:39, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Local host means the machine i am logged in to server.lbg.com
>>>>>>>>>>
>>>>>>>>>> You are right, example.lbg.com is CNAME record.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Okay, thanks for clearing that up.
>>>>>>>>>>
>>>>>>>>>> I dont have any SAN configured for the certificate. The
>>>>>>>>>> certificate
>>>>>>>>>>
>>>>>>>>>> is
>>>>>>>>>>
>>>>>>>>>> requested for only server.lbg.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> You will never be able to make a secure request to anything other
>>>>>>>>>>
>>>>>>>>>> than
>>>>>>>>>>
>>>>>>>>>> server.lbg.com without seeing an error. I highly recommend adding
>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> other hostname as a SAN to your certificate if you really want to
>>>>>>>>>> support this.
>>>>>>>>>>
>>>>>>>>>> Even if you wanted https://example.lbg.com/whatever to return an
>>>>>>>>>>
>>>>>>>>>> HTTP
>>>>>>>>>>
>>>>>>>>>> 302 redirect to https://server.lbg.com/whatever, the user would
>>>>>>>>>>
>>>>>>>>>> see a
>>>>>>>>>>
>>>>>>>>>> certificate hostname mismatch error which is ugly. It's best to
>>>>>>>>>>
>>>>>>>>> make
>>>>
>>>>>
>>>>>>>>>> it
>>>>>>>>>>
>>>>>>>>>> work without users seeing ugly things.
>>>>>>>>>>
>>>>>>>>>> So if i just request new certificate with SAN it should work ? If
>>>>>>>>>>
>>>>>>>>>> yes, I
>>>>>>>>>>
>>>>>>>>>> will request for it and follow your steps as below suggested.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Yes, it should.
>>>>>>>>>>
>>>>>>>>>> Should i use CName record or DNS? Does it make difference?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> CNAME *is* DNS.
>>>>>>>>>>
>>>>>>>>>> Whenever possible, use hostnames and not IP addresses as SANs.
>>>>>>>>>> It's
>>>>>>>>>>
>>>>>>>>>> more
>>>>>>>>>>
>>>>>>>>>> flexible that way, and users get to see hostnames instead of IP
>>>>>>>>>>
>>>>>>>>>> addresses.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Wednesday, April 24, 2024, Christopher Schultz <
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Lavanya,
>>>>>>>>>>
>>>>>>>>>> On 4/24/24 07:37, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Sorry I understood wrongly here with regards to my environment,
>>>>>>>>>>
>>>>>>>>>> Let me
>>>>>>>>>>
>>>>>>>>>> start from the beginning. I donot want to use redirect at all. I
>>>>>>>>>>
>>>>>>>>>> simply
>>>>>>>>>>
>>>>>>>>>> wanted to force apache tomcat to use both localhost and dns name
>>>>>>>>>>
>>>>>>>>>> of
>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> localhost via url.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> When you say "force" what do you mean?
>>>>>>>>>>
>>>>>>>>>> When you say "use both localhost and DNS name" what do you mean?
>>>>>>>>>>
>>>>>>>>>> When you say "localhost" do you mean 127.0.0.1 or "the machine I'm
>>>>>>>>>> logged-into right now"?
>>>>>>>>>>
>>>>>>>>>> I have DNS resollution as below.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> server.lbg.com --> localhost
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Is that a CNAME record?
>>>>>>>>>>
>>>>>>>>>> nslookup server.lbg.com (localhost)
>>>>>>>>>>
>>>>>>>>>> Name:    server.lbg.com
>>>>>>>>>> Address:  192.168.100.20
>>>>>>>>>> alias: example.lbg.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> That's a weird DNS response. The DNS name "localhost" should
>>>>>>>>>>
>>>>>>>>>> *always*
>>>>>>>>>>
>>>>>>>>>> return 127.0.0.1 for IPv4 and ::1 for IPv6. It shouldn't return
>>>>>>>>>> 191.168.100.20.
>>>>>>>>>>
>>>>>>>>>> We have working the below urls working:
>>>>>>>>>>
>>>>>>>>>> https://server.lbg.com:8443/towl
>>>>>>>>>> https://example.lbg.com:8443/towl --> redirects to
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> What do you mean "redirect"? Does it return a 30x response that
>>>>>>>>>>
>>>>>>>>>> causes
>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> browser to make a new request to \/
>>>>>>>>>>
>>>>>>>>>> https://server.lbg.com:8443/towl  --> still works --> we have SSL
>>>>>>>>>>
>>>>>>>>>> configured for the same but this SSL certificate doesnot have
>>>>>>>>>>
>>>>>>>>>> additional
>>>>>>>>>>
>>>>>>>>>> DNS setup.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> What SANs are in your certificate? How many certificates do you
>>>>>>>>>>
>>>>>>>>>> have?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> But I would need to somehow  access https://example.lbg.com -->
>>>>>>>>>>
>>>>>>>>>> which
>>>>>>>>>>
>>>>>>>>>> means
>>>>>>>>>> I would need to access via 443 here ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm so confused. What needs to access what?
>>>>>>>>>>
>>>>>>>>>> I tried to adding the below to  server.xml as below, but that
>>>>>>>>>>
>>>>>>>>>> doesnot
>>>>>>>>>>
>>>>>>>>>> seems
>>>>>>>>>>
>>>>>>>>>> to work.
>>>>>>>>>>
>>>>>>>>>>              <Connector port="80"
>>>>>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>>>>>>                     connectionTimeout="20000"
>>>>>>>>>>                     redirectPort="443" />
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This will only redirect (HTTP 302) requests to
>>>>>>>>>>
>>>>>>>>>> http://yourhost/anything
>>>>>>>>>>
>>>>>>>>>> to https://yourhost/anything *if the application specifically
>>>>>>>>>>
>>>>>>>>>> requests
>>>>>>>>>>
>>>>>>>>>> CONFIDENTIAL transport*. It doesn't just redirect everything by
>>>>>>>>>>
>>>>>>>>>> default. If
>>>>>>>>>>
>>>>>>>>>> you want it to redirect everything, you'll need to set that up
>>>>>>>>>>
>>>>>>>>>> e.g.
>>>>>>>>>>
>>>>>>>>>> using
>>>>>>>>>>
>>>>>>>>>> RewriteValve. There are other options, too.
>>>>>>>>>>
>>>>>>>>>> Do i need additional SSL certificate for the
>>>>>>>>>>
>>>>>>>>>> https://example.lbg.com
>>>>>>>>>>
>>>>>>>>>> to
>>>>>>>>>>
>>>>>>>>>> make it work ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If you don't want your browser to complain, you will need at least
>>>>>>>>>>
>>>>>>>>>> one
>>>>>>>>>>
>>>>>>>>>> TLS
>>>>>>>>>>
>>>>>>>>>> certificate that contains every Subject Alternative Name (SAN) for
>>>>>>>>>>
>>>>>>>>>> every
>>>>>>>>>>
>>>>>>>>>> possible hostname you expect to use with this service. You ca do
>>>>>>>>>>
>>>>>>>>>> it
>>>>>>>>>>
>>>>>>>>>> with
>>>>>>>>>>
>>>>>>>>>> multiple certificates as well, but a single cert with multiple
>>>>>>>>>>
>>>>>>>>>> SANs
>>>>>>>>>>
>>>>>>>>>> is
>>>>>>>>>>
>>>>>>>>>> less
>>>>>>>>>>
>>>>>>>>>> work.
>>>>>>>>>>
>>>>>>>>>> Do i need to set up an additional web server for this like apache
>>>>>>>>>>
>>>>>>>>>> or
>>>>>>>>>>
>>>>>>>>>> nginx
>>>>>>>>>>
>>>>>>>>>> for redirecting requests?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> No.
>>>>>>>>>>
>>>>>>>>>> Please stop saying "redirect" because it sounds like you almost
>>>>>>>>>>
>>>>>>>>>> never
>>>>>>>>>>
>>>>>>>>>> mean
>>>>>>>>>>
>>>>>>>>>> "HTTP 30x redirect" and that's confusing everything.
>>>>>>>>>>
>>>>>>>>>> I *think* you only need the following:
>>>>>>>>>>
>>>>>>>>>> 1. A TLS certificate with the following SANs:
>>>>>>>>>>
>>>>>>>>>>           * server.lbg.com
>>>>>>>>>>           * example.lbg.com
>>>>>>>>>>           * localhost (you shouldn't do this)
>>>>>>>>>>
>>>>>>>>>> 2. DNS configured for all hostnames:
>>>>>>>>>>
>>>>>>>>>>           * server.lbg.com -> A 192.168.100.20
>>>>>>>>>>           * example.lgb.com -> A 192.168.100.20
>>>>>>>>>>
>>>>>>>>>> 3. Tomcat configured with a single <Host> which is the default
>>>>>>>>>>
>>>>>>>>>> virtual
>>>>>>>>>>
>>>>>>>>>> host. Note that this is the *default Tomcat configuration* and
>>>>>>>>>>
>>>>>>>>>> doesn't
>>>>>>>>>>
>>>>>>>>>> need
>>>>>>>>>>
>>>>>>>>>> to be changed from the default.
>>>>>>>>>>
>>>>>>>>>> 4. Tomcat configured with your certificate like this:
>>>>>>>>>>
>>>>>>>>>>            <Connector ...
>>>>>>>>>>               SSLEnabled="true">
>>>>>>>>>>              <SSLHostConfig>
>>>>>>>>>>                <Certificate
>>>>>>>>>>                    certificateFile="/path/to/your/cert.crt"
>>>>>>>>>>                    certificateKeyFile="/path/to/your/key.pem" />
>>>>>>>>>>                <!-- You may need certificateKeyPassword in
>>>>>>>>>>
>>>>>>>>>> <Certificate>
>>>>>>>>>>
>>>>>>>>>> -->
>>>>>>>>>>
>>>>>>>>>>              </SSLHostConfig>
>>>>>>>>>>            </Connector>
>>>>>>>>>>
>>>>>>>>>> If your SANs are configured properly, this should allow you to
>>>>>>>>>>
>>>>>>>>>> connect
>>>>>>>>>>
>>>>>>>>>> using any of these URLs:
>>>>>>>>>>
>>>>>>>>>> $ curl https://server.lbg.com/towl/login.jsp
>>>>>>>>>>
>>>>>>>>>>           (returns login page)
>>>>>>>>>>
>>>>>>>>>> $ curl https://example.lbg.com/towl/login.jsp
>>>>>>>>>>
>>>>>>>>>>           (returns login page)
>>>>>>>>>>
>>>>>>>>>> If your application's web.xml contains something like this:
>>>>>>>>>>
>>>>>>>>>>           <security-constraint>
>>>>>>>>>>             <web-resource-collection>
>>>>>>>>>>               <web-resource-name>theapp</web-resource-name>
>>>>>>>>>>               <url-pattern>/*</url-pattern>
>>>>>>>>>>             </web-resource-collection>
>>>>>>>>>>             <user-data-constraint>
>>>>>>>>>>
>>>>>>>>>> <transport-guarantee>CONFIDENTIAL</transport-guarantee>
>>>>
>>>>>             </user-data-constraint>
>>>>>>>>>>           </security-constraint>
>>>>>>>>>>
>>>>>>>>>> ... then these URLs insecure HTTP URLs should redirect your
>>>>>>>>>>
>>>>>>>>>> clients:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> $ curl http://server.lbg.com/towl/login.jsp
>>>>>>>>>>
>>>>>>>>>>           (returns HTTP 302 redirect to
>>>>>>>>>>
>>>>>>>>>> https://server.lbg.com/towl/login.jsp
>>>>>>>>>>
>>>>>>>>>> )
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> $ curl https://server.lbg.com/towl/login.jsp
>>>>>>>>>>
>>>>>>>>>>           (returns HTTP 302 redirect to
>>>>>>>>>>
>>>>>>>>>> https://example.lbg.com/towl/login.jsp)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I don't think you need any use of the RewriteValve unless you want
>>>>>>>>>>
>>>>>>>>>> to
>>>>>>>>>>
>>>>>>>>>> handle sending HTTP 302 redirect responses to insecure requests
>>>>>>>>>>
>>>>>>>>>> without
>>>>>>>>>>
>>>>>>>>>> specifying the CONFIDENTIAL transport-guarantee in your
>>>>>>>>>>
>>>>>>>>>> application's
>>>>>>>>>>
>>>>>>>>>> web.xml file. But I don't see any reason NOT to have that in
>>>>>>>>>>
>>>>>>>>>> there.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Tue, Apr 23, 2024 at 10:52 PM Christopher Schultz <
>>>>>>>>>>
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Lavanya,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 4/22/24 05:21, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Could you please explain, what you exactly mean ? So here
>>>>>>>>>>
>>>>>>>>>> redirect
>>>>>>>>>>
>>>>>>>>>> is
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> not a
>>>>>>>>>>
>>>>>>>>>> solution right ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Redirecting is fine.
>>>>>>>>>>
>>>>>>>>>> Perhaps you should take a step back and decide: what do you
>>>>>>>>>>
>>>>>>>>>> actually
>>>>>>>>>>
>>>>>>>>>> want, here? You might be trying to solve problem X by applying
>>>>>>>>>>
>>>>>>>>>> solution
>>>>>>>>>>
>>>>>>>>>> Y, and you've already decided that solution Y is correct so you
>>>>>>>>>>
>>>>>>>>>> are
>>>>>>>>>>
>>>>>>>>>> trying to get help with that.
>>>>>>>>>>
>>>>>>>>>> Perhaps ask for help with Problem X?
>>>>>>>>>>
>>>>>>>>>> For example, "I don't want users to have to type the name of my
>>>>>>>>>> application to reach it so I want example.com/ to go to my
>>>>>>>>>>
>>>>>>>>>> application
>>>>>>>>>>
>>>>>>>>>> instead of example.com/myapp/".
>>>>>>>>>>
>>>>>>>>>> Or, "I have multiple domains and I want all of them to redirect
>>>>>>>>>>
>>>>>>>>>> to
>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> canonical domain example.com and to go to me web application
>>>>>>>>>>
>>>>>>>>>> /myapp
>>>>>>>>>>
>>>>>>>>>> so
>>>>>>>>>>
>>>>>>>>>> everything goes to example.com/myapp/".
>>>>>>>>>>
>>>>>>>>>> "You'd have to use a glob/regex if
>>>>>>>>>>
>>>>>>>>>> you wanted to check for [anything and maybe nothing.]
>>>>>>>>>>
>>>>>>>>>> example.com
>>>>>>>>>>
>>>>>>>>>> ."
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> There is nothing in your configuration or question that suggests
>>>>>>>>>>
>>>>>>>>>> that
>>>>>>>>>>
>>>>>>>>>> the hostname in the request is relevant, but you are making it a
>>>>>>>>>> *requirement* that the request contains a specific Host header.
>>>>>>>>>>
>>>>>>>>>> IF
>>>>>>>>>>
>>>>>>>>>> you
>>>>>>>>>>
>>>>>>>>>> don't actually need that, why do you have it?
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Fri, Apr 19, 2024 at 3:03 PM Christopher Schultz <
>>>>>>>>>>
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Ammu,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 4/19/24 08:32, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> Thank you very much. I removed <Host> for example.com as
>>>>>>>>>>
>>>>>>>>>> well
>>>>>>>>>>
>>>>>>>>>> as
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> adding
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> an
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <Alias> in server.xml
>>>>>>>>>> I copied context.xml file
>>>>>>>>>>
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml
>>>>>>>>>>
>>>>>>>>>> Removed < in rewrite.config files.
>>>>>>>>>>
>>>>>>>>>> But still I dont redirect the URL.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If you have <Context> in server.xml and also your application
>>>>>>>>>>
>>>>>>>>>> in
>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>> webapps/ directory, then you will be double-deploying your
>>>>>>>>>>
>>>>>>>>>> application.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Re-name /git/app/apache-tomcat-10.1.11/webapps/towl/ to be
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/ROOT (the capitals are
>>>>>>>>>> important)
>>>>>>>>>> and remove the <Context> element from your server.xml.
>>>>>>>>>>
>>>>>>>>>> Then start your server and read the logs.
>>>>>>>>>>
>>>>>>>>>> *nslookup alias.example.com <http://alias.example.com>
>>>>>>>>>>
>>>>>>>>>> gives-->Non-authoritative answer:Name:     www.example.com
>>>>>>>>>> <http://www.example.com>Address:  192.168.200.10Aliases:
>>>>>>>>>>
>>>>>>>>>> alias.example.com
>>>>>>>>>>
>>>>>>>>>> <http://alias.example.com>*
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Just to give some information here, *www.example.com
>>>>>>>>>> <http://www.example.com>* has alias* "alias.example.com
>>>>>>>>>> <http://alias.example.com>"*
>>>>>>>>>> But https://www.example.com:7777/example --> works fine with
>>>>>>>>>>
>>>>>>>>>> out
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> issues
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> but
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> the alias doesnot works (https://alias.example.com)
>>>>>>>>>> So i am not sure if the redirect url helps or if its correct
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Your rewrite configuration says that you have to be using host
>>>>>>>>>> "example.com" but your request goes to www.example.com. Your
>>>>>>>>>> configuration should only redirect a request such as:
>>>>>>>>>>
>>>>>>>>>> $ curl -v http://example.com:7777/something
>>>>>>>>>>
>>>>>>>>>> HTTP/1.1 301 Moved Permanently
>>>>>>>>>> ...
>>>>>>>>>> Location: https://www.example.com:7777/example
>>>>>>>>>>
>>>>>>>>>> If you make a request like:
>>>>>>>>>>
>>>>>>>>>> $ curl -v http://www.example.com:7777/something
>>>>>>>>>>
>>>>>>>>>> I wouldn't expect a redirect because of your "host" condition.
>>>>>>>>>>
>>>>>>>>>> The
>>>>>>>>>>
>>>>>>>>>> "%{HTTP_HOST} example.com" looks at the entire Host header
>>>>>>>>>>
>>>>>>>>>> and
>>>>>>>>>>
>>>>>>>>>> not
>>>>>>>>>>
>>>>>>>>>> just
>>>>>>>>>> anything that ends in "example.com". You'd have to use a
>>>>>>>>>>
>>>>>>>>>> glob/regex if
>>>>>>>>>>
>>>>>>>>>> you wanted to check for [anything and maybe nothing.]
>>>>>>>>>>
>>>>>>>>>> example.com.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> You'd also have to make sure that your application is serving
>>>>>>>>>>
>>>>>>>>>> responses
>>>>>>>>>>
>>>>>>>>>> to requests to / which is why I'm recommending you use the
>>>>>>>>>>
>>>>>>>>>> ROOT
>>>>>>>>>>
>>>>>>>>>> web
>>>>>>>>>>
>>>>>>>>>> application name instead of "towl".
>>>>>>>>>>
>>>>>>>>>> -chris
>>>>>>>>>>
>>>>>>>>>> On Fri, Apr 19, 2024 at 1:21 PM Christopher Schultz <
>>>>>>>>>>
>>>>>>>>>> ch...@christopherschultz.net> wrote:
>>>>>>>>>>
>>>>>>>>>> Ammu,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 4/18/24 09:34, lavanya tech wrote:
>>>>>>>>>>
>>>>>>>>>> I am attaching server.xml and context.xml and
>>>>>>>>>>
>>>>>>>>>> rewrite.config
>>>>>>>>>>
>>>>>>>>>> files.
>>>>>>>>>>
>>>>>>>>>> The paths are
>>>>>>>>>>
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/towl/context.xml
>>>>>>>>>> <Context>
>>>>>>>>>>                 <Valve
>>>>>>>>>>
>>>>>>>>>> className="org.apache.catalina.valves.rewrite.RewriteValve"
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> />
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                 <!-- Other context configuration -->
>>>>>>>>>> </Context>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This file ^^^ is in the wrong place. It should be in
>>>>>>>>>>
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/towl/WEB-INF/rewrite.
>>>>>>>>>> config
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <RewriteCond %{HTTP_HOST} example.com [NC]
>>>>>>>>>> <RewriteRule ^/(.*)$ https://www.example.com:7777/example
>>>>>>>>>>
>>>>>>>>>> [R=301,L]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Why do you have < symbols at the beginning of these lines?
>>>>>>>>>>
>>>>>>>>>> server.xml
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>             > [...]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                   <Host name="example.com" appBase="webapps"
>>>>>>>>>>
>>>>>>>>>> unpackWARs="true"
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> autoDeploy="true">
>>>>>>>>>>
>>>>>>>>>>                       <Context path="" docBase="towl" />
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> It's best not to define any <Context> in server.xml. I would
>>>>>>>>>>
>>>>>>>>>> remove
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> this
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <Context> entirely and allow Tomcat to auto-reploy from your
>>>>>>>>>>
>>>>>>>>>> webapps/towl directory. If you need this application to be
>>>>>>>>>>
>>>>>>>>>> deployed
>>>>>>>>>>
>>>>>>>>>> as
>>>>>>>>>> the ROOT context (on / and not /towl) then you should
>>>>>>>>>>
>>>>>>>>>> re-name
>>>>>>>>>>
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/towl to
>>>>>>>>>> /git/app/apache-tomcat-10.1.11/webapps/ROOT
>>>>>>>>>>
>>>>>>>>>> You also don't need a <Host> for example.com as well as
>>>>>>>>>>
>>>>>>>>>> adding
>>>>>>>>>>
>>>>>>>>>> an
>>>>>>>>>>
>>>>>>>>>> <Alias> for the same domain (though this is probably to
>>>>>>>>>>
>>>>>>>>>> anonymize the
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>
>>>>
>>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to