Java Uygulamalar için A’dan Z’ye Apache Tomcat Rehberi
  1. Anasayfa
  2. Open Source

Java Uygulamalar için A’dan Z’ye Apache Tomcat Rehberi

1

Bir müşterimden gelen talep üzerine Java Web uygulaması için Web Server çalışması gerçekleştirdim. Yapıda Java için bilinen popüler java servlet, Apache Tomcat yer alıyor. Tüm bu süreçleri sizlerle paylaşacağım. İlerleyeceğimiz adımlar şunlardır;

A) Apache Tomcat Konumlandırma
B) Apache Tomcat Kurulumu
C) KeyStore Oluşturma (Anahtar Deposu)
D) CSR Oluşturma (Sertifika İsteği)
E) CRT Yükleme (Sertifika)
F) Apache Tomcat SSL Yapılandırması
G) Apache Tomcat’in Başlatılması

A) Apache Tomcat Konumlandırma

Apache Tomcat versiyonu ne olursa olsun bu adımlar geçerli olacaktır. Burada önemli kriter sertifikanın server tarafında doğru port ve yapılandırmaya sahip olmasıdır.

Peki, bu ne demek oluyor?

Eğer Apache Tomcat’i server üzerinde farklı Web server mevcutsa (Apache Web Server, Nginx Server gibi) Web uygulamamız için alternatif port düşünmemiz gerekecek. Çünkü tüm HTTP serverları default olarak 80 HTTPS için 443’ü kullanır. Server üzerinde hem Apache Web Server hem Apache Tomcat var ise 80 ve 443’ü dinleyecek tek servis olabileceği için serverlar sağlıklı çalışmayacaktır. Unutmamalıyız ki bir portu sadece bir servis dinleyebilir. Aynı server üzerinde yer alan Apache Tomcat için 8443 portunu kullanabiliriz.

Java uygulamasını farklı bir server üzerinden çalıştırmak istersek port için default 443’ü kullanabiliriz. Fakat Web sitemizin bir kısmı Apache Web Server’de çalışması gerekiyor ve bizim Java uygulamamız için çözüm üretmemiz gerekirse bunu A kaydı oluşturarak yapabiliriz. Örneğin, mshowto.org sitemizde PHP ve MySQL çalıştırmaktayız ve Java Uygulamamızın performanslı çalışması için ikinci bir server mevcut. Yapmamız gereken çok basit; mshowto.org DNS Server’i üzerinden bir A kaydı oluşturmamız, biz bu örnekte a kaydına JAVA diyelim. Java A kaydı ise ikinci server olan Apache Tomcat’in IP adresini göstermeli.

  • mshowto.org Apache Web Server & MySQL
  • java.mshowto.org Apache Tomcat

B) Apache Tomcat Kurulumu

  • Makalemizde Apache Tomcat 10”ı Ubuntu Server’a kuracağız.
  • 80 ve 443 portlarını kullanacağı şekilde yapılandıracağız.
  • Path olarak da D:\Server\Java klasörünü kullanacağız.
  • Environment’ı JAVA_HOME yapacağız.
  1. Paket listelerini güncelleyelim.
    sudo apt update
  2. Java Development Kit’i kuruyoruz.
    sudo apt install default-jdk
  3. Tomcat için path oluşturuyoruz.
    sudo mkdir /opt/tomcat
    cd /opt/tomcat
  4. Path’i environment olarak ekliyoruz. Set yazarak liste halinde görebiliriz.
    export JAVA_HOME=/opt/tomcat
  5. Son versiyonu Apache Tomcat adresinden indiriyoruz.
    wget https://ftp.itu.edu.tr/Mirror/Apache/tomcat/tomcat-10/v10.0.0-M3/bin/apache-tomcat-10.0.0-M3.tar.gz
  6. tar.gz dosyasını Path’imize çıkarıyoruz.
    sudo tar xzvf apache-tomcat-*tar.gz -C /opt/tomcat --strip-components=1
  7. Servis yapılandırması için dosyayı çalıştıralım.
    chmod +x ./bin/startup.sh
    ./bin/startup.sh
  8. Firewall üzerinden izin verelim.
    sudo ufw allow 8080
    sudo ufw allow 8443

C) KeyStore Oluşturma (Anahtar Deposu)

Sertifikayı public bir sağlayıcıdan (GeoTrust, Comodo gibi) temin edeceğiz.

Sertifika isteğini Java’nın Keytool aracını kullanarak gerçekleştireceğiz, şimdi adım adım ilerleyelim.

  1. Tomcat dizinine gidiyoruz ve sertifikaları yöneteceğimiz bir path oluşturup açıyoruz.
    mkdir $JAVA_HOME/SSL
    cd $JAVA_HOME/ssl
  2. KeyStore oluşturuyoruz.
    keytool -genkey -alias mshowto -keyalg RSA -keysize 2048 –keystore mshowto.keystore
    1. KeyStore parolasını oluşturuyor ve tekrar yazarak doğruluyoruz.
    2. Kullanılacak domain adı. En önemli kısım burasıdır.
      java.mshowto.org
    3. Organizasyon birimi.
      IT
    4. Şehir veya Lokasyon adı.
      MsHowto
    5. State ve Letter’a aynı değeri vererek tamamlıyoruz.
      TR
    6. Doğruluğunu “yes” yazarak onaylıyoruz.
    7. MshHowto.Store için KeyStore parolasını oluşturuyor ve tekrar yazarak doğruluyoruz.

Resim-1

D) CSR Oluşturma (Sertifika İsteği)

Oluşturduğumuz sertifika deposuyla yeni bir CSR oluşturuyoruz.

  1. Sertifikaları yöneteceğimiz path içerisindeyiz.
    cd $JAVA_HOME/SSL
  2. CSR oluşturuyoruz.
    keytool -certreq -keyalg RSA -alias mshowto -file CSR.txt -keystore mshowto.keystore
  3. KeyStore parolasını girerek CSR oluşturma işlemini tamamlıyoruz.
  4. cat CSR.txt ile CSR kodunu kopyalıyoruz.

Resim-2

  1. CSR kodunu SSL alacağımız sağlayıcıya iletiyor ve bize SSL için gerekli CRT dosyalarının gönderilmesini bekliyoruz.

E) CSR Oluşturma (Sertifika İsteği)

Sertifikalar genellikle ZIP dosyası halinde mail ile gönderiliyor. Şimdi sertifikamızı yöneteceğimiz path’e çıkaracak ve ardından import edeceğiz.

  1. Sertifikaları yöneteceğimiz path içerisindeyiz.
    cd $JAVA_HOME/ssl
  2. Sertifika ZIP’ini dışarı çıkarıyoruz. SSL klasöründe Root, Intermediate ve Domain sertifikalarını görebilmekteyiz.
  3. Root sertifikalar genellikle global ve tanınmış olduğundan server’da default olarak yer almaktadır. Bu yüzden import etmeye gerek yok.
  4. Intermediate (ara sertifika) ya da Bundle olarak bir sertifika varsa bunu import ediyoruz.
    keytool -import -alias intermed -keystore mshowto.keystore -trustcacerts -file JAVA_mshowto_org.ca-BUNDLE
  5. Domain sertifikasını import ediyoruz. Alias ve KeyStore oluşturduğumuz değerler ile aynı olmalı.
    keytool -import -alias mshowto -keystore tomcat.keystore -trustcacerts -file JAVA_mshowto_org.crt

F) Apache Tomcat SSL Yapılandırması

Sertifikamızı server’a import ettikten sonra Apache Tomcat tarafından yapılandırmayı gerçekleştirmemiz gerekiyor.

  1. Apache Tomcat yapılandırma dosyası $JAVA_HOME/conf altında server.xml dosyasıdır.
  2. Server.xml’i editleyeceğiz.
    Nano $JAVA_HOME/conf/server.xml
  3. <!–<Connector port=”8443 ‘ı server.xml içerisinde aratalım.
  4. <!—ve –> açıklama parametrelerini kaldırıyoruz. Connector portunu 443 olarak değiştiriyorum.

    Konumlandırma adımında planladığımız gibi yeni bir server’da Apache Tomcat çalışacağı için 443 yapmamız herhangi bir soruna yol açmayacak.
    Eğer aynı sunucuda Apache Web Server vb. Web Server olsaydı portu 8443 ya da farklı bir port olarak değiştirebiliriz. Bu makalede Java’ı başka bir sunucuda çalıştıracağım için 8080 portunu da 80 olarak değiştirdim.

  5. Port yapılandırmasından sonra SSL için KeyStore yapılandırmasını server.xml dosyasında düzenleyeceğiz.

    keystoreFile ve keystorePass değerlerini değiştirerek kaydedelim.

  6. Aşağıdaki gibi görünmelidir. Dilerseniz doğrudan bu yapılandırmayı kullanabilirsiniz.

G) Apache Tomcat’in Başlatılması

SSL yapılandırmasından sonra servisi yeniden başlatarak yapılandırmaları devreye alalım.

  1. Apache Tomcat servis yönetimi için bin klasörüne giriyoruz.
    cd $JAVA_HOME\bin\
  2. Apache Tomcat’i durdurmak için aşağıdaki komutu çalıştırın:
    ./shutdown.sh
  3. Apache Tomcat’i yeniden başlatmak için aşağıdaki komutu çalıştırın:
    ./startup.sh
  4. https://java.mshowto.org adresine girdiğimizde yapılandırmanın başarıyla tamamlandığını görüyoruz.

     

    Resim-3

    Referanslar

    www.mshowto.org

    http://tomcat.apache.org/tomcat-10.0-doc/index.html

    TAGs: Apache Tomcat, Apache Tomcat 9, Apache Tomcat 10, Apache Tomcat SSL, Apache Tomcat Service, Apache Tomcat Sertifika, Apache Tomcat CSR Oluşturma, java servlet

Bu İçeriğe Tepkin Ne Oldu?
  • 8
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Uğur, İstanbul'da doğdu. Ayvansaray Üniversitesi & Bilge Adam tarafından hazırlanan İnternet ve Ağ Teknolojileri bölümünü bitirdi. AYU Siber Güvenlik Yüksek Lisansını tamamladı. Bilge Adam, İsimtescil, Medisana, BDH\NETAŞ firmalarının sistem birimlerinde çeşitli görevler aldı. Kariyerine Deutsche Telekom firmasında Kıdemli Sistem Uzmanı olarak devam ediyor.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

  1. Abi ellerine sağlık. Ayrıca bir makinede Tomcat server diğer farklı bir makinede de mysql database bağlantısınıda ekleyebilme imkanın varsa çok güzel olur.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir