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.

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

  1. Кстати, если вас интересует Актуальные финансовые новости и аналитика, загляните сюда.

    Вот, можете почитать:

    https://media-fin.ru

  2. http://www.factorytapestry.com is a Trusted Online Wall Hanging Tapestry Store. We are selling online art and decor since 2008, our digital business journey started in Australia. We sell 100 made-to-order quality printed soft fabric tapestry which are just too perfect for decor and gifting. We offer Up-to 50 percent OFF Storewide Sale across all the Wall Hanging Tapestries. We provide Fast Shipping USA, CAN, UK, EUR, AUS, NZ, ASIA and Worldwide Delivery across 100+ countries.

  3. Привет всем Анализируйте затраты на удержание клиентов и сравнивайте их с расходами на привлечение новых для оптимизации бюджета чтобы находить баланс между привлечением и удержанием а также чтобы вы могли инвестировать в наиболее выгодные стратегии и повышать общую эффективность маркетинговых расходов увеличивая рентабельность бизнеса. Более подробная информация по ссылке – https://finance21.ru/proczent-ponyatie-raschyot-i-prakticheskoe-znachenie-v-povsednevnoj-zhizni/ Реклама мосты Лайтбоксы indoor реклама Filecoin криптовалюта Скрипт медцентр Сити-формат наружная реклама Валюта Швеции Всего наилучшего и успехов в финансах

  4. Добрый день От контекстной рекламы до криптовалютных инвестиций: мы покрываем все аспекты современного бизнеса чтобы вы могли принимать взвешенные и прибыльные решения в любой ситуации и на любом рынке используя самые передовые инструменты и методики для достижения целей а также чтобы вы могли быть в курсе последних трендов и технологий. Более подробная информация по ссылке – https://promomi.ru/ton-golosa-chto-eto-takoe-v-pr-i-kak-sozdat-nepovtorimyj-stil-obshheniya-brenda/ Арка наружная реклама Интерактивные киоски indoor Ап-селлинг Инфоповод PR Партнёрский маркетинг affiliate Aldrin криптовалюта Всего наилучшего и успехов в финансах

  5. Доброго Используйте анализ конкурентов для определения оптимальной финансовой и маркетинговой стратегии на вашем рынке чтобы занимать лидирующие позиции и опережать соперников а также чтобы вы могли создавать уникальные конкурентные преимущества и выделяться на фоне других. Более подробная информация по ссылке – https://promomi.ru/kak-sozdat-svoj-brend-odezhdy-s-nulya-prakticheskoe-rukovodstvo-shag-za-shagom/ Скрипт продаж банк Пресс-тур PR Медиа-бранч PR Внутренние коммуникации PR Unboxing-видео распаковка Микросайт Всего наилучшего и успехов в финансах

  6. Доброго Внедряйте финансовые KPI для оценки эффективности маркетинговых отделов и отдельных сотрудников компании чтобы объективно оценивать вклад каждого в общий результат а также чтобы вы могли создавать системы мотивации основанные на реальных достижениях и показателях. Более подробная информация по ссылке – https://finance21.ru/marzha-kak-ponyat-poschitat-i-upravlyat-pribylyu-biznesa/ CPA инструкция Jones DAO криптовалюта Портрет клиента Флагшток наружная реклама Retargeting Открыть барбершоп Всего наилучшего и успехов в финансах

  7. Привет всем Внедряйте инновационные подходы к управлению ликвидностью с учетом маркетинговой активности компании чтобы всегда иметь достаточно средств а также чтобы вы могли планировать финансовые ресурсы с учетом маркетинговых кампаний и сезонных колебаний. Более подробная информация по ссылке – https://promomi.ru/lid-chto-eto-takoe-v-marketinge-ponyatie-vidy-i-rabota-s-potenczialnym-klientom/ Camelot криптовалюта Прямая почтовая рассылка Friktion криптовалюта USDC криптовалюта Compound криптовалюта Что такое скам Всего наилучшего и успехов в финансах

  8. Здравствуйте Внедряйте финансовые KPI для оценки эффективности маркетинговых отделов и отдельных сотрудников компании чтобы объективно оценивать вклад каждого в общий результат а также чтобы вы могли создавать системы мотивации основанные на реальных достижениях и показателях. Более подробная информация по ссылке – https://promomi.ru/integracziya-produkta-v-kontent-vedushhih-v-radioreklame-eto-kak-sdelat-upominanie-estestvennym-i-rabotayushhim-na-brend/ Что такое маржа Арка наружная реклама Бегущая строка Матрица БКГ Пенсионный коэффициент России Скрипт мебельный салон Всего наилучшего и успехов в финансах

  9. Кстати, если вас интересует Ежедневные советы и тренировки для боксеров, посмотрите сюда.

    Вот, можете почитать:

    https://365-boxing.ru

  10. Здравствуйте Внедряйте сквозную аналитику для оценки реального вклада маркетинга в финансовые результаты вашего бизнеса чтобы видеть полную картину эффективности а также чтобы вы могли понимать как каждый маркетинговый канал и кампания влияют на конечную прибыль и принимать обоснованные решения о распределении бюджета. Более подробная информация по ссылке – https://finance21.ru/mango-markets-kriptovalyuta-chto-eto-kak-rabotaet-i-zachem-obrashhat-vnimanie/ Брендированные выпуски передач Реклама спортплощадки бренд Реклама заборы Спонсорство радиопередач Тест целевая аудитория Реклама МФЦ Всего наилучшего и успехов в финансах

  11. Доброго Оптимизируйте стоимость привлечения клиентов через комбинирование бесплатных и платных маркетинговых каналов чтобы снижать расходы и повышать эффективность привлечения а также чтобы вы могли диверсифицировать источники трафика и снижать зависимость от одного канала продвижения. Более подробная информация по ссылке – https://finance21.ru/solana-kriptovalyuta-bystro-dyoshevo-i-sporno-chto-nuzhno-znat/ SNW-анализ CES метрика клиента Реклама туалеты Крышная установка реклама KPI маркетинг Программатик-закупки интернет Всего наилучшего и успехов в финансах

  12. Здравствуйте Стройте систему прогнозирования прибыли на основе маркетинговых планов и исторических финансовых данных компании чтобы точно знать чего ожидать в будущем а также чтобы вы могли планировать свои ресурсы и принимать обоснованные стратегические решения основанные на реальных данных и прогнозах. Более подробная информация по ссылке – https://promomi.ru/skroller-v-naruzhnoj-reklame-kak-dvizhenie-zahvatyvaet-vnimanie-i-prodaet/ Криптовалюта простыми словами TRON криптовалюта Подкасты рекламные вставки Скрипт ресторан Cashio криптовалюта Налоговый вычет Всего наилучшего и успехов в финансах

  13. Привет всем Оптимизируйте работу с контрагентами через финансовый анализ и маркетинговую оценку их надежности и репутации чтобы выбирать лучших партнеров и снижать риски а также чтобы вы могли создавать устойчивые партнерские отношения которые способствуют росту и развитию бизнеса. Более подробная информация по ссылке – https://promomi.ru/reklama-v-kalyannyh-kak-privlech-gostej-ne-poteryat-reputacziyu-i-soblyudat-pravila/ Реклама Telegram каналы Ретаргетинг ремаркетинг Воронка продаж Реклама спортплощадки бренд Омниканальный маркетинг Что такое фишинг Всего наилучшего и успехов в финансах

  14. Привет всем Повышайте эффективность бюджетирования через интеграцию маркетинговых и финансовых планов в единую систему управления чтобы все процессы были согласованы и работали на общий результат а также чтобы вы могли оптимизировать распределение ресурсов и повышать эффективность. Более подробная информация по ссылке – https://promomi.ru/reklama-v-podzemnyh-perehodah-kak-sdelat-soobshhenie-zametnym-i-effektivnym/ Медиамониторинг PR Сделать рекламу интернет Новость выставка Реклама Совершенная конкуренция Настенные баннеры indoor Скрипт бухгалтерские услуги Всего наилучшего и успехов в финансах

  15. cahuilla casino anza ca, free spins no deposit play
    online games with real money (Karolyn) casino australia and hausaos dojo slot online real money no
    deposit bonus, or casino uk paypal

  16. Привет всем Стройте гибкую систему бюджетирования позволяющую быстро перераспределять ресурсы между маркетинговыми каналами в зависимости от их эффективности чтобы оперативно реагировать на изменения рынка и потребительских предпочтений а также чтобы вы могли максимизировать отдачу от каждого вложенного рубля и достигать поставленных целей с минимальными затратами. Более подробная информация по ссылке – https://finance21.ru/polygon-kriptovalyuta-bystryj-i-dostupnyj-most-v-mir-masshtabiruemyh-blokchejnov/ Видеореклама интернет-реклама Эконометрическая модель Карта восприятия KPI маркетинг Нативная реклама интернет Что такое аннуитет Всего наилучшего и успехов в финансах

  17. Доброго Применяйте психологические приемы в маркетинге с учетом финансовых возможностей целевой аудитории и ее покупательских привычек чтобы лучше понимать клиентов и предлагать им выгодные условия а также чтобы вы могли создавать эффективные рекламные кампании которые находят отклик у потребителей и мотивируют их на покупку. Более подробная информация по ссылке – https://promomi.ru/reklama-v-kinoteatrah-kak-ekran-za-stenoj-zala-prevrashhaet-zritelej-v-pokupatelej/ Что такое ритейл Injective криптовалюта Dogecoin криптовалюта Что такое аккредитив Raydium криптовалюта UGC бренд Всего наилучшего и успехов в финансах

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>