How to switch to/from HTTPS using Apache as a proxy to Tomcat

I’m writing this down because it too me an age to figure out a way of doing this. I have a website which Tomcat is happily serving. Areas of the site require a secure connection so I’m using Spring security to require particular URLs to be accessed over HTTPS. It means that when I access http://example.org:8080/webapp/login, it’ll bump me to https://example.org:8443/webapp/login. Note: Tomcat is setup with the SSL connector and a self signed .keystore see (http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html).

I have two vhosts setup in Apache, one for the http://example.org and one for https://example.org. They are both using mod_proxy to ProxyPass and ProxyPassReverse requests to the appropriate Tomcat URL’s. The problem comes when switching to HTTPS from HTTP and vice versa. Ideally I wanted some sort of ProxyPassReverse declaration in my config for http://example.org what would change HTTP headers (that Spring sets) for https://example.org:8443/webapp into https://example.org. Except ProxyPassReverse doesn’t work like that.

Now, I realise I could simply not use Spring to manage which parts of the site should be accessed over HTTPS and which should not…and just setup Apache to redirect as appropriate. I don’t want to do that though, because that makes the task of adding these restrictions a deploy time task, rather than a development time task. I don’t want to risk someone forgetting to add new restrictions when deploying the webapp and I’d much rather the developer added these restrictions when they were working on the task and really thinking about where and when they are needed.

So, how do I solve the problem so that the app can manage its secure-ness and I can setup Apache once and forget about it? The answer is to ProxyPassReverse onto a “special” URL, which when accessed will redirect to the HTTPS (or HTTP) site. For example, if the HTTP site needed to redirect to the HTTPS site, I’d add rules like so to perform the redirect:

    # Proxy a request (from the server) to switch to https onto a special URL "/2https/"
    ProxyPassReverse /2https/ https://example.org:8443/webapp/

    # When a client requests a URL prefixed with "/2https" map it onto the secure site
    RewriteRule ^/2https/(.*)$ https://example.org/$1 [R,L]

…and you’d add something similar to the secure site Apache config. As long as I don’t mount any pages at /2http or /2https I should be ok. Note a couple of things:

  • You’ll need “SSLProxyEngine on” and “RewriteEngine on” and obviously the appropriate Apache modules loaded for these commands.
  • Because of the redirect between HTTP <-> HTTPS you won’t be able to POST data between them directly (I’m not sure why you’d NEED to though)
  • Obviously you’ll need to setup Apache with an SSL certificate…but that is a different story

I should say a special thanks to this random site – from whence the idea actually came from. If anyone has any better ideas on how to do it I’d love to hear them. Please comment below.

12,057 thoughts on “How to switch to/from HTTPS using Apache as a proxy to Tomcat

  1. در مجموع

    برای اون دسته که

    بازی انفجار آنلاین

    فعال هستن

    این مجموعه

    احتمالا گزینه باشه

    جزو بهترین‌ها باشه

    چیزی که جلب توجه می‌کنه اینه که

    برندهای شناخته‌شده‌ای مثل

    وبسایت еnfejaronline

    و

    sibbet فعال

    تونستن اعتماد جلب کنن

    در آخر کار

    ارزش وقت گذاشتن داشت

    و

    به احتمال قوی

    حتما برمی‌گردم

    Ꭺlso visit my homepage – رسانه دانشگاهی

  2. I all the time used to read piece of writing
    in news papers but now as I am a user of internet therefore from now I am using net for articles
    or reviews, thanks to web.

  3. بطور خلاصه

    برای کاربران علاقه‌مند به

    بازی‌های شانس

    فعال هستن

    این صفحه

    به نظر گزینه باشه

    ارزش بررسی داشته باشه

    از سوی دیگر

    برندهای شناخته‌شده‌ای مثل

    еnfejaronline فعال

    و

    سایت sibbet

    در بین کاربران شناخته شدن

    در پایان

    ارزشمند بود

    و

    حتما دوباره

    حتما برمی‌گردم

    my website :: سایت علمی دانشگاهی (https://cmarml7.lomza.pl/راهنمای-کامل-ثبت-نام-در-سایت-شرط-بندی-ان)

  4. Hello everyone!

    Just discovered a great gaming site!

    Been playing at Joe Fortune Casino and loving it so far: read the reviews here

    Huge multi-deposit welcome bonus. Lots of positive feedback.

    Would love to hear your thoughts?

  5. سلام و عرض ادب، خودم مدتی قبل وسط وبگردی درفضای وب به این صفحه پیداش
    کردم و بدون اغراق تحت تاثیر قرار گرفتم.
    محتواش به‌دردبخور بود و کمتر همچین وبسایتی ببینم.
    بهنظرم برای افراد مختلف ارزش دیدن
    داره. برای کسایی که دنبال
    محتوای مفید هستن پیشنهاد می‌کنم حتما یه نگاهی بندازن.

    در مجموع راضی‌کننده بود و احتمالا دوباره استفاده می‌کنم

    به شکل خلاصه

    برای کاربران علاقه‌مند به

    فضای شرط‌بندی آنلاین

    در حال بررسی هستن

    این پلتفرم شرطی

    احتمالاً می‌تونه

    گزینه مناسب محسوب بشه

    در ضمن

    برندهایی مثل

    وبسایت enfejaronlіne

    و

    sibƄet معتبر

    نشون دادن این فضا چقدر گسترده‌ست

    در آخر کار

    خیلی خوب بود

    و

    در دفعات بعد

    مراجعه مجدد دارم

    .

    Here is my web-site; سایت آموزش پزشکی

  6. درود فراوان، خودم امروز هنگام گشتن در اینترنت به این صفحه
    برخوردم و بدون اغراق تحت تاثیر قرار گرفتم.

    نوشته‌هاش جذاب بود و خیلی کم پیش میاد همچین سایتی ببینم.

    به نظرم برای افراد مختلف ارزش دیدن داره.
    برای کسایی که دنبال محتوای مفید هستن حتما سر بزنن.
    در مجموع راضی‌کننده بود و احتمالا دوباره استفاده می‌کنم

    به شکل کلی

    برای افرادی که قصد دارن

    سرگرمی‌های پولی

    وقت صرف می‌کنن

    این آدرس

    میتونه

    کار راه بنداز باشه

    چیزی که جلب توجه می‌کنه اینه که

    اسم‌هایی مثل

    enfеjaronline برتر

    و

    sibbet محبوب

    مطرح شدن

    به طور کلی

    قابل قبول بود

    و

    حتما

    بازدید می‌کنم

    .

    Look at my web-site :: پایگاه خبری معتبر

  7. سلام، خودم مدتی قبل وسط وبگردیدر اینترنت با این
    وبسایت پیداش کردم و بدون اغراق خیلی خوشم اومد.
    اطلاعاتش کاربردی بود و به ندرت همچین منبعی پیدا کنم.
    به نظرم برای کاربرای زیادی مفید باشه.
    برای کسایی که دنبال منبع
    معتبر هستن بد نیست برن ببینن. در کل خوشم اومد
    و احتمالا دوباره استفاده می‌کنم

    نتیجه‌گیری اینکه

    برای کاربرانی که دنبال تجربه هستن

    بازی انفجار آنلاین

    هستن

    این آدرس

    احتمالا گزینه باشه

    کار راه بنداز باشه

    نکته جالب اینه که

    دامنه‌هایی مثل

    وبسایت enfejɑronline

    و

    شبکه ѕibbet

    مطرح شدن

    خلاصه اینکه

    قابل قبول بود

    و

    بدون تردید

    دوباره سراغش میام

    .

    My homepage – سایت خبری دولتی

  8. bayar bayar bayar bayar bayar bayarbayar bayar bayar bayar bayar bayarbayar
    bayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayarbayar
    bayar bayar bayar bayar bayarbayar bayar bayar bayar bayar bayar bayar bayar bayar bayar
    bayar bayarbayar bayar bayar bayar bayar bayarbayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayarbayar bayar
    bayar bayar bayar bayar

  9. Howdy, There’s no doubt that your site could be having browser compatibility issues.
    When I look at your web site in Safari, it looks fine however when opening in IE, it’s got some overlapping issues.
    I simply wanted to provide you with a quick heads up! Besides that,
    excellent site!

  10. Для тех, кто ищет информацию по теме “Гид по финансам и инвестициям в России”, там просто кладезь информации.

    Вот, делюсь ссылкой:

    https://rub-money.ru

  11. در جمع‌بندی کلی

    برای دوست‌داران

    بازی‌های آنلاین پولی

    پیگیر هستن

    این پلتفرم

    به نظرم می‌تونه

    مناسب کاربران باشه

    همچنین

    دامنه‌هاییمثل

    enfejaronline رسمی

    و

    sibbet معتبر

    در حال رشد هستن

    در جمع‌بندی

    تجربه خوبی بود

    و

    احتمالاً

    میام دوباره

    Here is my site سایت معتبر خبری

  12. Здравствуйте Ремонт балкона под ключ — это возможность создать комфортную и стильную зону для отдыха. Мы выполняем ремонт балкона под ключ начиная с подготовки и заканчивая отделкой. Ремонт балкона под ключ — это создание уютного пространства. Ремонт балкона под ключ — это ваш уголок для отдыха и вдохновения. Строительство дома под ключ — это услуга которая включает в себя все этапы работы от проектирования до финальной отделки. Мы предлагаем полное сопровождение на всех этапах строительства чтобы ваш дом был готов для проживания. Наши специалисты помогут выбрать оптимальные материалы для каждой части дома. Мы заботимся о том чтобы результат был идеальным. Строительство под ключ — это гарантия того что ваш дом будет полностью готов и комфортен для проживания. Больше информации по ссылке – http://trud-ost.ru/?p=960330 ремонт капитальный многоквартирного дома договор капитальный ремонт дома дизайн отделок квартир куплю квартиру в краснодаре с отделкой терем строительство домов и цены дом строительство рязань Удачи

  13. bayar bayar bayar bayar bayar bayarbayar bayar
    bayar bayar bayar bayarbayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayarbayar bayar
    bayar bayar bayar bayarbayar bayar bayar bayar bayar bayar
    bayar bayar bayar bayar bayar bayarbayar bayar bayar bayar bayar bayarbayar
    bayar bayar bayar bayar bayar bayar bayar bayar bayar bayar bayarbayar bayar bayar bayar bayar bayar

  14. Хотите смотреть фильмов онлайн? есть хороший ресурс Смотреть фильмы и сериалы онлайн – это прекрасный способ отдохнуть после напряженного дня. Вы можете забыть о повседневных заботах и погрузиться в увлекательный мир кино. фильмы и сериалы онлайн Это отличный антистресс который доступен каждому. Позвольте себе расслабиться и насладиться моментом. Больше информации по ссылке: — https://filmy-serialy-online-1.top фильмы онлайн бесплатно легальноонлайн фильмы бесплатно качестволучшие фильмы всех времен Хороших сериалов и отличного настроения

  15. Hi there!

    Wanted to share something cool!

    Recently found Joe Fortune Casino and loving it so far: Joe Fortune reviews

    They offer fast payouts. Players seem to love it.

    Have you played there?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>