Ana içeriğe geç

Tomcat 10 Güvenliği – Apache veya Nginx ile TLS (Ubuntu 20.04)

Bu rehberde Apache Tomcat 10’u Apache veya Nginx ters vekil arkasına alarak güvene almayı öğreneceksiniz.
TLS sertifikalarını Let’s Encrypt ile yönetecek ve Tomcat’i internete kapatacaksınız.


🧠 Teknik Özet

Ana konu: Tomcat 10’u TLS ile güvenli yayınlama
Amaç:

  • Şifresiz HTTP trafiğini engellemek
  • Tomcat’i doğrudan internetten izole etmek

İzlenen adımlar:

  • Apache veya Nginx ters vekil yapılandırması
  • Let’s Encrypt TLS entegrasyonu
  • Tomcat erişimini localhost ile kısıtlama

ℹ️ Not: TLS yapılandırması Tomcat yerine Apache veya Nginx üzerinde yapılmalıdır.


✅ Ön Gereksinimler

  • Ubuntu 20.04 sunucu örneği
  • sudo yetkili kullanıcı
  • Apache Tomcat 10 kurulu olmalı
  • Alan adı ve DNS A kaydı hazır olmalı
  • Let’s Encrypt sertifikası yapılandırılmış olmalı

Örnek alan adı: app.rabisu.cloud


1. Apache ile Ters Vekil Kullanımı

1.1 Apache VirtualHost Yapılandırması

1. TLS etkin VirtualHost dosyasını açın.

sudo nano /etc/apache2/sites-enabled/app-rabisu-cloud-le-ssl.conf
  • Bu dosya HTTPS trafiğini yönetir.

2. Aşağıdaki satırları ekleyin:


ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
  • Bu yapılandırma Apache’yi Tomcat’e yönlendirir.

3. Gerekli Apache Modülleri


sudo a2enmod proxy
  • Bu komut ters vekil desteğini açar.

sudo a2enmod proxy_http
  • Bu komut HTTP trafiği vekilliğini etkinleştirir.

sudo apache2ctl configtest
  • Bu komut yapılandırmayı kontrol eder.

sudo systemctl restart apache2
  • Apache yapılandırmayı uygular.

  • ✅ Tomcat artık TLS arkasındadır.


2. Nginx ile Ters Vekil Kullanımı

2.1 Upstream Tanımı

1. Nginx yapılandırmasını açın.


sudo nano /etc/nginx/sites-available/app-rabisu-cloud
  • Dosyanın başına ekleyin:

upstream tomcat {
server 127.0.0.1:8080;
}
  • Bu blok Tomcat bağlantısını tanımlar.

2 TLS Server Block Düzenleme

  • 443 portundaki location / bloğunu güncelleyin.

location / {
include proxy_params;
proxy_pass http://tomcat;
}
  • Bu yönlendirme HTTPS trafiğini Tomcat’e iletir.


sudo nginx -t
  • Bu komut yapılandırmayı test eder.

sudo systemctl restart nginx
  • Nginx yapılandırmayı uygular.

  • ✅ Tomcat TLS ile erişilebilir.


3. 🔒 Tomcat’e Doğrudan Erişimi Kapatma

  • Tomcat’i yalnızca yerel arayüzden erişilebilir yapacağız.

sudo nano /opt/tomcat/conf/server.xml
  • Aşağıdaki Connector’ı bulun:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

  • address parametresini ekleyin:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
address="127.0.0.1"
redirectPort="8443" />
  • Bu ayar Tomcat’i internete kapatır.

sudo systemctl restart tomcat
  • ✅ Sadece Apache veya Nginx erişebilir.

❓ Sıkça Sorulan Sorular (SSS)

1. Neden Tomcat üzerinde TLS kullanmıyoruz? Apache ve Nginx güncel TLS standartlarını daha iyi destekler.

2. Apache mi Nginx mi tercih edilmeli? Her ikisi de güvenlidir. Nginx daha hafiftir.

3. 8080 portu internete kapandı mı? Evet. Yalnızca localhost üzerinden dinler.

4. Let’s Encrypt otomatik yenilenir mi? Evet. Certbot ile periyodik olarak yenilenir.


✅ Sonuç

Tomcat 10 artık güvenli bir ters vekil arkasında çalışıyor. TLS etkin, doğrudan erişim kapalı.

🚀 Rabisu Bulut altyapısında Java uygulamalarınızı güvenle yayınlayabilirsiniz.