bg-tutorials

Tomcat’e SSL Sertifikası Nasıl Yüklenir

Bu eğitimde, Java keytool yardımcı programını kullanarak Apache Tomcat’e nasıl SSL sertifikası kurulacağını öğreneceksiniz, ardından server.xml dosyasında HTTPS bağlayıcısını (connector) yapılandıracaksınız. Henüz CSR’nizi oluşturmadıysanız, ilk bölüm bunu nasıl yapacağınızı gösterir.

Ayrıca tüm süreci adım adım gösteren bir video da hazırladık. Videoyu izleyebilir, talimatları okuyabilir veya her ikisini de yapabilirsiniz. Videoyu aşağıda izleyebilirsiniz.

Tomcat için CSR kodu oluşturma

CSR, Sertifika İmzalama Talebi (Certificate Signing Request) anlamına gelir ve alan adınız ile kuruluşunuz hakkında güncel bilgiler içeren bir metin bloğudur. Ticari bir SSL sertifikası satın alan her kişi, doğrulamayı geçmek ve sertifikayı almak için Sertifika Otoritesine (SSL sağlayıcısına) bir CSR göndermelidir. CSR yanlış bilgiler içeriyorsa, CA sertifikayı imzalamaz.

Tomcat’te CSR, bir Java keystore’undan keytool ile oluşturulur ve aynı keystore, kurulum sırasında yeniden kullanacağınız özel anahtarı da barındırır. İki seçeneğiniz vardır:

Önemli: CSR’yi oluştururken kullandığınız keystore dosyasını ve takma adı (alias) not edin. İmzalanmış sertifikanızı daha sonra tam olarak bu takma ada geri aktaracaksınız, çünkü eşleşen özel anahtar orada bulunmaktadır.

Sertifika Otoritesi talebinizi doğrulayıp size SSL dosyalarını gönderdikten sonra, aşağıdaki kurulumla devam edin.

Tomcat’e SSL sertifikası kurma

Tomcat kurulumunun iki aşaması vardır: önce sertifika zincirini ve imzalanmış sertifikanızı, özel anahtarınızı zaten içeren keystore’a aktarırsınız, ardından server.xml dosyasında HTTPS bağlayıcısını bu keystore’u kullanacak şekilde yapılandırırsınız.

Adım 1: SSL sertifika dosyalarınızı hazırlayın

Sertifika Otoriteniz dosyaları verdiğiniz adrese, genellikle bir ZIP arşivi olarak e-postayla gönderir. Arşivi çıkarın. CA’ya bağlı olarak, dosyalar iki formattan birinde gelir:

  • PKCS#7: sertifikanızı kök ve ara sertifikalarla birlikte zaten paketleyen tek bir .p7b (veya .cer) dosyası.
  • PEM: ayrı dosyalar, genellikle sunucu sertifikanız için bir .crt dosyası ile ayrı root.crt ve intermediate.crt dosyaları.

Çıkardığınız dosyaları sunucuya, CSR’nizi oluşturduğunuz keystore ile aynı dizine (aşağıda example.jks olarak anılacaktır) yükleyin. Formatınızı belirleyin ve ilgili talimatları izleyin.

CSR’yi başka bir yerde mi oluşturdunuz, yani özel anahtarınız example.jks içinde bir giriş olarak değil de ayrı bir dosya olarak mı bulunuyor? keytool’u atlayın: sertifikayı, zinciri ve anahtarı tek bir .p12 dosyasında paketlemek için PEM’i PKCS#12’ye dönüştürün, ardından bu dosyayı Adım 3’te certificateKeystoreType=”PKCS12″ ile referans gösterin.

Adım 2: Sertifikayı keystore’unuza aktarın

PKCS#7 formatı. Bir .p7b dosyası zaten tam zinciri içerdiğinden, tek bir komut her şeyi mevcut özel anahtar takma adınıza aynı anda aktarır:

keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.p7b

ssldragon yerine kendi takma adınızı, example yerine dosya adlarınızı yazın. Takma ad, özel anahtarınızı zaten barındıran takma ad olmalıdır (CSR adımından gelen takma ad). Certificate reply was installed in keystore mesajını gördüğünüzde, içe aktarma başarılı olmuştur. Keystore’un içeriğini şu şekilde doğrulayın:

keytool -list -v -keystore example.jks

Türü PrivateKeyEntry olan ve sertifika zincir uzunluğu 1’den büyük olan bir girişi arayın. Bu, imzalanmış sertifikanın artık özel anahtarınıza bağlı olduğunu doğrular.

PEM formatı. Sertifikaları zincir sırasına göre ayrı ayrı içe aktarın: önce kök, ardından varsa ara sertifikalar ve en son alan adı sertifikanız. Zinciri önce içe aktarmak, keytool’un yanıtı anahtarınıza eklemeden önce eksiksiz bir güven yolu oluşturmasını sağlar. Kök sertifikayı içe aktarın:

keytool -import -trustcacerts -alias root -keystore example.jks -file root.crt

Ardından ara sertifikayı içe aktarın:

keytool -import -trustcacerts -alias intermediate -keystore example.jks -file intermediate.crt

CA’nız birden fazla ara sertifika sağlıyorsa, her birini kendi güvenilir takma adı altında, birbirlerini imzalama sıralarına göre (kökten alan adı sertifikanıza doğru) içe aktarın. Örneğin, bir Sectigo Sectigo PositiveSSL sertifikası birden fazla ara sertifika ile birlikte gelir, bu yüzden bunları alan adı sertifikasından önce sırayla içe aktarın.

Son olarak, birincil sertifikanızı (alan adınız için verilen sertifika) mevcut özel anahtar takma adına, yani CSR’yi oluştururken kullandığınız aynı takma ada aktarın:

keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.crt

Burada ssldragon, mevcut özel anahtar takma adınız olmalıdır. Bu takma adın zaten bir anahtarı olduğundan, keytool bu içe aktarmayı bir sertifika yanıtı olarak ele alır ve imzalanmış sertifikayı anahtara bağlar. HTTPS’in çalışmasını sağlayan adım tam olarak budur.

Kritik tuzak: imzalanmış sertifikayı yepyeni bir takma ad altında içe aktarmayın. Takma adın mevcut bir özel anahtarı yoksa, keytool sertifikayı anahtarı olmayan bağımsız bir güvenilir giriş olarak saklar ve TLS başarısız olur. Anahtarınızı hangi takma adın barındırdığından emin değilseniz, keytool -list -v -keystore example.jks komutunu çalıştırın ve türü PrivateKeyEntry olan takma adı kullanın.

Adım 3: server.xml dosyasında HTTPS bağlayıcısını yapılandırın

Sertifika keystore’unuzda olduğuna göre, Tomcat’in HTTPS bağlayıcısını buna yönlendirin. Bağlayıcı, Tomcat kurulumunuzun conf klasöründe bulunan server.xml içinde tanımlanır (örneğin $CATALINA_HOME/conf/server.xml). Dosyayı bir metin düzenleyicide açın.

Güncel Tomcat sürümlerinde (9, 10 ve 11), önerilen biçim, keystore’unuza referans veren bir Certificate öğesini içinde barındıran bir SSLHostConfig öğesini iç içe yerleştirir. Güvenli bağlayıcıyı aşağıdaki gibi ekleyin veya güncelleyin:

<Connector
    port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150"
    SSLEnabled="true"
    scheme="https"
    secure="true">
  <SSLHostConfig>
    <Certificate
        certificateKeystoreFile="/your_path/example.jks"
        certificateKeystorePassword="your_keystore_password"
        certificateKeystoreType="JKS"
        certificateKeyAlias="ssldragon"
        type="RSA" />
  </SSLHostConfig>
</Connector>
  • certificateKeystoreFile: keystore dosyanızın tam yolu.
  • certificateKeystorePassword: keystore şifresi.
  • certificateKeystoreType: .jks keystore için JKS, .p12 / .pfx keystore için PKCS12.
  • certificateKeyAlias: özel anahtarınızı ve imzalanmış sertifikanızı barındıran takma ad (burada, ssldragon). Bu, keystore birden fazla girdi içerdiğinde Tomcat’e hangi girdiyi sunacağını söyler.

Not: yukarıda kullanılan 443 portu standart HTTPS portudur; Tomcat’in kendi örnekleri varsayılan olarak 8443 kullanır, bu yüzden ortamınızın beklediğini kullanın. Bu ilk HTTPS kurulumunuzsa, güvenli bağlayıcı server.xml içinde yorum satırına alınmış olabilir. Bağlayıcının etkin olması için çevresindeki yorum işaretlerini kaldırın ve aynı porta bağlı başka bir bağlayıcının olmadığından emin olun.

Eski biçim (daha eski Tomcat). Eski kılavuzlar, keystore ayrıntılarını doğrudan bağlayıcıya keystoreFile ve keystorePass nitelikleri olarak yerleştirir. Bu tarz, yukarıda gösterilen SSLHostConfig ve Certificate öğelerinin yerini almıştır; desteklenen Tomcat sürümlerinde kullanılması gereken biçim budur.

Adım 4: server.xml dosyasını kaydedin ve Tomcat’i yeniden başlatın

server.xml’i kaydedin, ardından yapılandırmayı yeniden yüklemesi için Tomcat’i yeniden başlatın. Linux’ta, birlikte gelen betikleri kullanın:

$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh

Tomcat bir servis olarak çalışıyorsa, bunun yerine hizmet yöneticiniz aracılığıyla yeniden başlatın (örneğin Linux’ta systemctl restart tomcat veya Windows’ta Hizmetler paneli). Tebrikler, SSL sertifikanız artık Tomcat sunucunuza kurulmuş durumda.

Tomcat SSL kurulumunuzu test edin

Sertifikayı kurduktan sonra, fark edilmeden küçük hatalar oluşabilir ve bu da tarayıcıların sitenize nasıl davrandığını etkileyebilir. Kurulumu kontrol etmeyi bir alışkanlık haline getirin. Eksik bir ara sertifika veya güvenilmeyen bir zincir gibi sorunları ortaya çıkaran anlık bir tarama için SSL Checker aracımızı çalıştırın.

Sıkça Sorulan Sorular

Tomcat SSL sertifikam içe aktardıktan sonra neden çalışmıyor?

Genellikle bunun nedeni, imzalanmış sertifikanın özel anahtarınızı zaten barındıran takma ad yerine yeni bir takma ad altında içe aktarılmasıdır. Bu durumda keytool, sertifikayı anahtarı olmayan güvenilir bir sertifika girdisi olarak saklar ve Tomcat bir TLS el sıkışmasını tamamlayamaz. İmzalanmış yanıtı, mevcut özel anahtar takma adına (CSR’nizdeki takma ad) yeniden aktarın. İşe yaradığını doğrulamak için keytool -list -v -keystore example.jks komutunu çalıştırın ve takma adın birden fazla sertifika içeren bir zincirle PrivateKeyEntry olarak göründüğünü kontrol edin.

Önce sertifika zincirini mi yoksa alan adı sertifikamı mı içe aktarmalıyım?

Önce zinciri içe aktarın. Kök ve varsa ara sertifikaları sırasıyla güvenilir girdiler olarak ekleyin, ardından alan adı sertifikanızı en son özel anahtar takma adına aktarın. Bu, keytool’un yanıtı anahtarınıza eklemeden önce eksiksiz bir güven yolu oluşturmasını sağlar. PKCS#7 (.p7b) dosyasında zincir zaten paketlenmiş olduğundan, tek bir içe aktarma her şeyi halleder.

Tomcat SSL yapılandırma dosyası nerede bulunur?

HTTPS bağlayıcısı, Tomcat kurulumunuzun conf dizininde bulunan server.xml dosyasında tanımlanır (örneğin $CATALINA_HOME/conf/server.xml). Güncel Tomcat sürümlerinde, keystore doğrudan bağlayıcı üzerinde değil, iç içe geçmiş bir SSLHostConfig ve Certificate öğesi aracılığıyla referans gösterilir.

Tomcat’te JKS yerine PKCS12 keystore kullanabilir miyim?

Evet. Tomcat her ikisini de destekler. .p12 veya .pfx keystore için certificateKeystoreType‘ı PKCS12 olarak, .jks keystore için JKS olarak ayarlayın ve certificateKeystoreFile‘ı eşleşen dosyaya yönlendirin. PKCS12, standart ve taşınabilir bir keystore formatı olduğundan yeni keystore’lar için iyi bir varsayılan seçenektir.

Tomcat, HTTPS için hangi portu kullanır?

Tomcat’in örnek yapılandırması, güvenli bağlayıcı için 8443 portunu kullanır. Tarayıcıların varsayılan olarak kullandığı standart port üzerinden HTTPS sunmak için, bağlayıcı port değerini 443 olarak ayarlayın ve başka bir bağlayıcının veya hizmetin bu portu zaten kullanmadığından emin olun.

SSL yapılandırmasını değiştirdikten sonra Tomcat’i nasıl yeniden başlatırım?

Birlikte gelen $CATALINA_HOME/bin/shutdown.sh betiğini, ardından $CATALINA_HOME/bin/startup.sh betiğini çalıştırın veya Tomcat hizmetini hizmet yöneticiniz aracılığıyla yeniden başlatın (örneğin Linux’ta systemctl restart tomcat veya Windows’ta Hizmetler paneli). server.xml’deki değişikliklerin etkili olması için yeniden başlatma gereklidir.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.