Tüm Ürünler
Search
Belge Merkezi

Certificate Management Service:Install an SSL certificate on a Tomcat server (Linux)

Son Güncelleme:Oct 05, 2026

Linux üzerinde çalışan bir Tomcat sunucusunda HTTPS'yi etkinleştirmek için Java KeyStore (JKS) veya PFX/PKCS#12 biçiminde bir SSL sertifikası yükleyin. Bu kılavuzda sertifikanın indirilmesi, Tomcat'in server.xml dosyasının yapılandırılması, 443 numaralı bağlantı noktasının açılması ve dağıtımın doğrulanması anlatılmaktadır.

Gereksinimler

Başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:

  • Sertifika Durumu: Güvenilir bir sertifika yetkilisi (CA) tarafından verilmiş bir SSL sertifikanız bulunmalıdır. Sertifikanızın süresi dolmak üzereyse veya süresi geçmişse öncelikle yenilemeniz gerekir.

  • Eşleşen Alan Adları: Sertifikanın korumak istediğiniz tüm alan adlarını kapsadığından emin olun. Bir alan adı eklemeniz veya değiştirmeniz gerekiyorsa ücretli bir sertifika satın alabilir veya alan adlarını ekleyip değiştirebilirsiniz.

    • Tam eşleşen alan adı: Tam eşleşen alan adı sertifikası yalnızca belirtilen alan adı için geçerlidir.

      • example.com için bir sertifika yalnızca example.com için geçerlidir.

      • www.example.com için bir sertifika yalnızca www.example.com için geçerlidir.

    • Joker karakterli alan adı: Joker karakterli alan adı sertifikası yalnızca birinci düzey alt alan adları için geçerlidir.

      • *.example.com için bir sertifika; www.example.com ve a.example.com gibi birinci düzey alt alan adlarını kapsar.

      • *.example.com için bir sertifika kök alan adı example.com veya a.b.example.com gibi çok düzeyli alt alan adları için geçerli değildir.

    Not

    Çok düzeyli bir alt alan adıyla eşleşmesi için Bound Domains alanında belirli alan adı (örneğin, a.b.example.com) veya buna karşılık gelen bir joker karakterli alan adı (örneğin, *.b.example.com) yer almalıdır.

  • Sunucu İzinleri: root hesabını veya sudo izinlerine sahip bir hesabı kullanın.

  • DNS Çözümlemesi: Alan adı sunucunun genel IP adresine çözümlenir.

Hızlı başlangıç

Yükleme işlemi dört adımdan oluşur:

  1. Sertifika Yönetimi konsolundan sertifika paketini indirin ve dosyaları sunucunuza yükleyin.

  2. Güvenlik grubunuzda ve güvenlik duvarında 443 numaralı bağlantı noktasını açın.

  3. SSL bağlayıcısını eklemek için server.xml dosyasını düzenleyin, ardından Tomcat'i yeniden başlatın.

  4. Bir tarayıcıda https://yourdomain adresini ziyaret edin ve kilit simgesinin göründüğünü onaylayın.

Önkoşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Güvenilir bir sertifika yetkilisi (CA) tarafından verilen bir SSL sertifikası. Sertifikanın süresi dolmak üzereyse veya zaten dolmuşsa öncelikle yenileyin.

  • Güvenli hale getirmek istediğiniz tüm alan adlarıyla eşleşen bir sertifika: Alan adlarını eklemek veya değiştirmek için ticari bir sertifika satın alın veya alan adlarını ekleyip değiştirin.

    • Tam eşleşen alan adı: Yalnızca belirtilen alan adı için geçerlidir. Örneğin, example.com yalnızca example.com adresini korur ve www.example.com yalnızca www.example.com adresini korur.

    • Joker karakterli alan adı: Yalnızca birinci düzey alt alan adları için geçerlidir. Örneğin, *.example.com www.example.com ve a.example.com adreslerini kapsar ancak kök alan adı example.com veya a.b.example.com gibi çok düzeyli alt alan adlarını kapsamaz.

    Çok düzeyli bir alt alan adını güvence altına almak için Bound Domains alanında ya tam alt alan adı (örneğin, a.b.example.com ) ya da eşleşen bir joker karakterli alan adı (örneğin, *.b.example.com ) yer almalıdır.
  • Sunucuda root hesabı veya sudo ayrıcalıklarına sahip bir hesap.

  • Alan adı için sunucunun genel IP adresine çözümlenen bir DNS kaydı.

1. Adım: Sertifika dosyalarını hazırlama

  1. SSL Certificates sayfasına gidin. Hedef sertifikanın Actions sütununda Download Certificate seçeneğine tıklayın. Download sekmesinde Server Type olarak Tomcat seçeneğini belirleyin ve paketi indirin.

  2. İndirilen paketi ayıklayın. Paket bir sertifika dosyası (.pfx veya .jks) ve bir parola dosyası (.txt) içerir.

    Ortamınıza uygun sertifika biçimini seçin: - JKS (Java KeyStore) : Java'ya özel bir anahtar deposu biçimidir. Araçlarınız ve betikleriniz bunu zaten destekliyorsa JKS'yi seçin. - PFX/PKCS#12 : Java ve diğer platformlar tarafından desteklenen evrensel bir biçimdir. Farklı teknoloji yığınları arasında veya Java olmayan sistemlerle entegrasyon sağlamak için PFX'i seçin.
  3. Sertifika dosyasını (.pfx veya .jks) ve parola dosyasını (.txt) sunucuya yükleyin. Bunları /etc/ssl/cert/ gibi güvenli bir dizinde saklayın. Dosyaları aktarmak için PuTTY, Xshell veya WinSCP gibi bir uzaktan oturum açma aracının dosya yükleme özelliğini kullanın. Bir Alibaba Cloud Elastic Compute Service (ECS) örneği kullanıyorsanız talimatlar için Dosya yükleme veya indirme bölümüne bakın.

    Önemli

    Yüklemeden sonra sertifika dosyalarına erişimi kısıtlayın. Bunları yalnızca Tomcat kullanıcısının okumasına izin verin:

    sudo chown tomcat:tomcat /etc/ssl/cert/domain_name.* sudo chmod 400 /etc/ssl/cert/domain_name.*

2. Adım: 443 numaralı bağlantı noktasını açma

Tomcat'in iki düzeyde 443 numaralı bağlantı noktasının açık olması gerekir: cloud güvenlik grubu ve işletim sistemi güvenlik duvarı.

Güvenlik grubunda 443 numaralı bağlantı noktasını açma

Sunucunuz Alibaba Cloud ECS üzerinde çalışıyorsa TCP 443 numaralı bağlantı noktasına izin vermek için gelen bir kural ekleyin:

  1. Elastic Compute Service (ECS) instances adresine gidin ve hedef örnek adına tıklayın.

  2. Security Group Details bölümünde aşağıdaki ayarlara sahip bir güvenlik grubu kuralı ekleyin ve kaydedin: Diğer cloud platformları için ilgili belgelere bakın.

    Field Value
    Action Allow
    Protocol Custom TCP
    Destination (Current Instance) HTTPS (443)
    Source 0.0.0.0/0 (anywhere)

İşletim sistemi güvenlik duvarında 443 numaralı bağlantı noktasını açma

Öncelikle 443 numaralı bağlantı noktasının zaten erişilebilir olup olmadığını kontrol edin. Linux dağıtımınız için aşağıdaki komutu çalıştırın:

RHEL/CentOS

command -v nc > /dev/null 2>&1 || sudo yum install -y nc
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Çıktı Ncat: Connected to <your_server_public_ip>:443 içeriyorsa 443 numaralı bağlantı noktası açıktır ve başka bir işlem yapmanız gerekmez.

Debian/Ubuntu

command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Çıktı Connection to <your_server_public_ip> port [tcp/https] succeeded! veya [<your_server_public_ip>] 443 (https) open içeriyorsa 443 numaralı bağlantı noktası açıktır ve başka bir işlem yapmanız gerekmez.

443 numaralı bağlantı noktası açık değilse etkin güvenlik duvarını belirleyin ve bağlantı noktasını açın:

if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then
    echo "firewalld"
elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then
    echo "ufw"
elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then
    echo "nftables"
elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then
    echo "iptables"
elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then
    echo "iptables"
else
    echo "none"
fi

Çıktı none ise hiçbir güvenlik duvarı etkin değildir. Aksi takdirde güvenlik duvarınız için ilgili komutu çalıştırın:

firewalld

sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload

ufw

sudo ufw allow 443/tcp

nftables

sudo nft add table inet filter 2>/dev/null
sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null
sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/null

iptables

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables kurallarını yeniden başlatmalarda kalıcı hale getirmek için:

  • RHEL/CentOS:

    sudo yum install -y iptables-services
    sudo service iptables save
  • Debian/Ubuntu:

    sudo apt-get install -y iptables-persistent
    sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null

3. Adım: Tomcat'i yapılandırma

Yapılandırma sözdizimi Tomcat sürümleri arasında hafif farklılık gösterir. Sürümünüzle eşleşen bölüme uyun.

Tomcat 9

  1. Tomcat kök dizininden server.xml dosyasını açın:

    sudo vim ./conf/server.xml
  2. HTTP yönlendirme bağlayıcısını yapılandırın. Mevcut HTTP bağlayıcısını trafiği 443 numaralı bağlantı noktasına yönlendirecek şekilde güncelleyin:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               maxParameterCount="1000"
               />
  3. SSL bağlayıcısını ekleyin. Sertifika biçiminize uygun bloğu seçin:

    PFX format

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.pfx"
                         certificateKeystorePassword="<password-from-pfx-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    JKS format

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.jks"
                         certificateKeystorePassword="<password-from-jks-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    certificateKeystoreFile yolunu sertifika dosyanızın gerçek yoluyla değiştirin ve certificateKeystorePassword değerini ilgili parola dosyasının içeriğiyle değiştirin.

  4. AJP bağlayıcısının redirectPort değerini 443 olarak güncelleyin:

    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="443"
               maxParameterCount="1000"
               />

Tomcat 8.5

Tomcat 8.5, JSSE uygulamasını manuel olarak belirtmenizi gerektirir. Bağlayıcı sözdizimi yukarıdaki Tomcat 9 ile aynıdır. SSL bağlayıcısını Tomcat 9 bölümündeki PFX veya JKS bloğunu kullanarak ekleyin.

Tomcat 7

Tomcat 7, iç içe geçmiş SSLHostConfig yerine Connector öğesinde satır içi SSL öznitelikleri kullanır.

PFX format

<Connector port="443"
           protocol="HTTP/1.1"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.pfx"
           keystoreType="PKCS12"
           keystorePass="<password-from-pfx-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

JKS format

<Connector port="443"
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectport="8443"
           maxParameterCount="1000"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.jks"
           keystoreType="JKS"
           keystorePass="<password-from-jks-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

(İsteğe bağlı) HTTP'den HTTPS'ye zorunlu yönlendirme

Tüm HTTP isteklerini otomatik olarak HTTPS'ye yönlendirmek için conf/web.xml dosyasının en altına, kapanış </web-app> etiketinden hemen önce aşağıdaki bloğu ekleyin:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Tomcat'i doğrulama ve yeniden başlatma

  1. Yapılandırmayı doğrulayın. Tomcat'in bin dizininden şu komutu çalıştırın:

    ./configtest.sh

    Çıktı Configuration file test successful ise yapılandırma geçerlidir. Hatalar görünürse hata mesajlarına göre yapılandırmayı düzeltin ve doğrulamayı yeniden çalıştırın.

  2. Değişiklikleri uygulamak için Tomcat'i yeniden başlatın:

    sudo ./shutdown.sh
    sudo ./startup.sh

4. Adım: Dağıtımı doğrulama

Bir tarayıcı açın ve https://yourdomain adresine gidin (yourdomain yerine gerçek alan adınızı yazın).

Adres çubuğundaki kilit simgesi sertifikanın doğru yüklendiğini onaylar.

image

Chrome, 117. sürümden itibaren image simgesini yeni bir image simgesiyle değiştirmiştir. Sertifika ayrıntılarını görüntülemek için bu simgeye tıklayın.

Kilit simgesi görünmüyorsa veya erişim hataları görürseniz tarayıcı önbelleğini temizleyin veya gizli modda tekrar deneyin. Sorun devam ederse SSS bölümüne bakın.

Canlıya alma

Üretim ortamına dağıtım yaparken aşağıdaki uygulamaları takip edin:

  • Tomcat'i root olmayan bir kullanıcı olarak çalıştırın. Tomcat için özel, düşük ayrıcalıklı bir sistem hesabı oluşturun ve asla root olarak çalıştırmayın.

    Bunun yerine SSL sonlandırmasını ağ geçidi katmanında yapmayı düşünün — sertifikayı bir Server Load Balancer (SLB) veya Nginx gibi bir ters proxy üzerine dağıtın. Ağ geçidi HTTPS sonlandırmasını yönetir ve arka uca düz HTTP iletir; bu durum birden çok sunucuda sertifika yönetimini basitleştirir.
  • Kimlik bilgilerini yapılandırma dosyalarının dışında tutun. Anahtar deposu parolasını server.xml içinde sabit kodlamak yerine çalışma zamanında enjekte etmek için ortam değişkenleri, bir secrets manager veya bir cloud anahtar yönetimi hizmeti kullanın.

  • HTTP'den HTTPS'ye yönlendirmeyi zorunlu kılın. Adam ortası saldırılarını önlemek için tüm HTTP trafiğini HTTPS'ye yönlendirin (bkz. 3. Adım içindeki isteğe bağlı adım).

  • Eski TLS protokollerini devre dışı bırakın. Tomcat yapılandırmanızda SSLv3, TLS 1.0 ve TLS 1.1'i devre dışı bırakın. Yalnızca TLS 1.2 ve TLS 1.3'ü etkinleştirin.

  • Sertifika sona erme tarihini izleyin. Dağıtımdan sonra Sertifika Yönetimi hizmetinde alan adı izlemeyi etkinleştirin. Alibaba Cloud sertifika geçerliliğini kontrol eder ve süre dolmadan önce yenileme hatırlatmaları gönderir. Talimatlar için bkz. Genel alan adı izlemeyi satın alma ve etkinleştirme.

SSS

Yükleme veya sertifika güncellemesinden sonra HTTPS erişilemiyor

Aşağıdakileri sırayla kontrol edin:

  1. 443 numaralı bağlantı noktası engellenmiş. Hem güvenlik grubunun hem de işletim sistemi güvenlik duvarının 443 numaralı bağlantı noktasında gelen TCP trafiğine izin verdiğini doğrulayın. Bkz. 2. Adım.

  2. Alan adı uyumsuzluğu. Eriştiğiniz alan adının sertifikanın Bound Domains alanında listelendiğini onaylayın. Alan adı eşleştirme kuralları için Önkoşullar bölümüne bakın.

  3. Tomcat yeniden başlatılmamış. Yeni yapılandırma yalnızca Tomcat yeniden başlatıldıktan sonra etkili olur. Bkz. 3. Adım içindeki doğrulama ve yeniden başlatma adımları.

  4. Yanlış sertifika yolu veya dosyası. server.xml içindeki certificateKeystoreFile (veya keystoreFile) öğesinin doğru ve güncel sertifika dosyasına işaret ettiğini kontrol edin.

  5. Yukarı akış hizmetlerinde sertifika eksik. Alan adınız bir Content Delivery Network (CDN), Server Load Balancer (SLB) veya Web Application Firewall (WAF) üzerinden geçiyorsa sertifikanın bu hizmetlere de yüklenmesi gerekir. Bkz. Trafik birden çok Alibaba Cloud hizmetinden geçtiğinde sertifika dağıtım konumları.

  6. Eksik çok sunuculu dağıtım. Alan adının DNS'i birden çok sunucuya çözümleniyorsa sertifikayı hepsine yükleyin.

Daha derinlemesine sorun giderme için bkz. Tarayıcı hata mesajlarına göre sertifika dağıtım sorunlarını çözme ve SSL sertifikası dağıtım sorun giderme kılavuzu.

Tomcat başlatılamıyor ve günlükte "Keystore was tampered with, or password was incorrect" hatası görülüyor

Bu durum neredeyse her zaman server.xml içindeki parolanın anahtar deposu dosyasıyla eşleşmediği anlamına gelir. Düzeltmek için:

  1. Sertifika paketindeki parola dosyasını (.txt) açın ve içeriğini sondaki boşluklar veya yeni satırlar olmadan tam olarak kopyalayın.

  2. server.xml içindeki certificateKeystorePassword (veya keystorePass) özniteliğini bu değerle güncelleyin.

  3. certificateKeystoreFile (veya keystoreFile) öğesinin doğru dosya yoluna işaret ettiğini onaylayın.

  4. Tomcat kullanıcısının sertifika dosyasında okuma iznine sahip olduğunu onaylayın.

Sunucuya erişirken Connection was reset / Connection refused hatası alınıyor

Bu bir ağ bağlantısı sorunudur, sertifika sorunu değildir. Aşağıdakileri kontrol edin:

  1. Hem güvenlik grubunun hem de işletim sistemi güvenlik duvarının 443 numaralı bağlantı noktasında (veya server.xml içinde yapılandırılan bağlantı noktasında) gelen trafiğe izin verdiğini onaylayın. Bkz. 2. Adım.

  2. Tomcat'in çalıştığını doğrulayın: ps -ef | grep tomcat

  3. server.xml SSL bağlayıcısındaki port özniteliğinin eriştiğiniz bağlantı noktasıyla eşleştiğini onaylayın.

Tomcat'te SSL sertifikası nasıl güncellenir veya değiştirilir

  1. Mevcut dosyaları yedekleyin. Sunucudaki mevcut sertifika dosyasının (.pfx veya .jks) ve parola dosyasının (.txt) kopyalarını kaydedin.

  2. Yeni sertifikayı indirin. Sertifika Yönetimi konsolundan yeni sertifika paketini alın.

  3. Dosyaları değiştirin. Yeni sertifika ve parola dosyalarını sunucudaki aynı yola yükleyerek eskilerinin üzerine yazın. Dosya yolu ve adı server.xml içinde yapılandırılanlarla tam olarak eşleşmelidir.

  4. Tomcat'i yeniden başlatın. Yeni sertifikayı uygulamak için Tomcat'in bin dizininden sudo ./shutdown.sh ve sudo ./startup.sh komutlarını çalıştırın.