bg-tutorials

Apache Üzerine SSL Sertifikası Nasıl Kurulur

Bu kılavuzda, Apache üzerine SSL sertifikası nasıl kurulur sorusunu adım adım öğreneceksiniz. Talimatlar, mevcut kararlı sürüm serisi olan Apache 2.4 için geçerlidir.

İçindekiler

Apache üzerinde CSR kodu nasıl oluşturulur?

Sertifika İmzalama İsteği (Certificate Signing Request) veya kısaca CSR, alan adı sahipliğiniz ve/veya şirketiniz hakkında bilgi içeren küçük bir metin dosyasıdır. CSR oluşturmak, SSL satın alma sürecinin ayrılmaz bir parçasıdır ve tüm ticari Sertifika Yetkilileri, SSL başvuru sahiplerinin bu adımı tamamlamasını zorunlu kılar.

İki seçeneğiniz bulunmaktadır:

Apache üzerine SSL sertifikası kurulumu

Sertifika Yetkilisi SSL sertifikasını imzalayıp size gönderdikten sonra, sertifikayı Apache sunucunuza güvenle kurabilirsiniz. Aşağıdaki adımları izleyin.

Adım 1: Sertifika dosyalarınızı hazırlayın

Sertifika Yetkilinizden aldığınız ZIP klasöründeki dosyaları indirip çıkartın. Genellikle şunları bulacaksınız:

  • .crt dosyası – birincil SSL sertifikanız.
  • .ca-bundle dosyası – güven zincirini oluşturan ara (ve kök) sertifikalar. Bu zincir, tarayıcıların ve uygulamaların sertifikanızı doğrulayabilmesi için gereklidir. Bu dosya olmadan bazı istemciler sitenizi güvensiz olarak işaretleyebilir.

Bu dosyaları, CSR’nizle birlikte oluşturduğunuz özel anahtar (.key) dosyasıyla birlikte sunucunuzdaki güvenli bir dizine, örneğin /etc/ssl/ dizinine yükleyin. Özel anahtarın yalnızca root tarafından okunabilir olmasını sağlayın (chmod 600).

Önerilen yöntem (Apache 2.4.8 ve üzeri): sertifikanızı ve CA paketini tek bir “tam zincir” dosyasında birleştirin. Apache 2.4.8’den itibaren SSLCertificateFile yönergesi, ara sertifikaları doğrudan bu dosyadan yüklemektedir; bu nedenle eski SSLCertificateChainFile yönergesine artık gerek yoktur:

cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt

CA’nız ara sertifikaları ayrı dosyalar olarak teslim ettiyse, önce sertifikanızla birleştirin; ardından ara sertifikaları, sertifikanızı imzalayandan köke doğru sıralayın (kök sertifikanın kendisi isteğe bağlıdır):

cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt

Örneğin, bir Sectigo PositiveSSL sertifikası kurarken, alan adı sertifikanızı Sectigo ara paketi ile birleştirmeniz gerekir. Her zaman CA’nız tarafından sağlanan tam dosya adlarını kullanın.

Adım 2: SSL modülünü etkinleştirin (mod_ssl)

HTTPS yapılandırmasına geçmeden önce Apache’nin SSL modülünün etkin olduğundan emin olun.

Debian/Ubuntu üzerinde mod_ssl‘i (ve Adım 4’teki HSTS başlığı için ihtiyaç duyacağınız mod_headers‘ı) etkinleştirin:

sudo a2enmod ssl
sudo a2enmod headers

RHEL/CentOS/AlmaLinux/Rocky Linux üzerinde SSL modül paketini kurun (modül kurulduktan sonra otomatik olarak yüklenir):

sudo dnf install mod_ssl

Adım 3: Apache yapılandırma dosyasını bulun

İşletim sisteminize ve Apache sürümünüze bağlı olarak yapılandırma farklı dosyalarda bulunabilir. Aşağıdaki konumlardan birinde httpd.conf, apache2.conf veya özel bir SSL/site yapılandırma dosyası arayın:

  • Debian/Ubuntu: ana yapılandırma /etc/apache2/apache2.conf; site bazlı yapılandırmalar /etc/apache2/sites-available/ dizininde.
  • RHEL/CentOS/AlmaLinux/Rocky: ana yapılandırma /etc/httpd/conf/httpd.conf; SSL yapılandırması /etc/httpd/conf.d/ssl.conf.

Not: Apache sunucunuz Ubuntu üzerinde çalışıyorsa, Ubuntu için SSL kurulum talimatlarımızı da takip edebilirsiniz.

Adım 4: Sanal ana bilgisayarı yapılandırın

Öncelikle mevcut yapılandırma dosyanızı yedekleyin. Bu sayede bir şeyler ters giderse değişikliklerinizi hızlıca geri alabilirsiniz:

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

Şimdi yapılandırma dosyasını açın ve HTTPS (port 443) sanal ana bilgisayarını ayarlayın. Eksiksiz, modern bir sanal ana bilgisayar yapılandırması şu şekilde görünür:


    ServerName  www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example

    SSLEngine on

    # Apache 2.4.8+ : server certificate + intermediate chain in ONE file
    SSLCertificateFile    /etc/ssl/example_com_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/example_com.key

    # Recommended TLS hardening (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Tell browsers to always use HTTPS (enable only after HTTPS works)
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog  ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined

example.com adresini, belge kökünü ve dosya yollarını kendi değerlerinizle değiştirin. Temel yönergelerin işlevleri şunlardır:

  • SSLEngine on – bu sanal ana bilgisayar için SSL/TLS’yi etkinleştirir.
  • SSLCertificateFile – Adım 1’de oluşturulan tam zincir dosyasının (sertifika + ara sertifikalar) yolu. Apache 2.4.8 ve üzerinde bu tek yönerge, kullanımdan kaldırılan SSLCertificateChainFile‘ın yerini alır.
  • SSLCertificateKeyFile – CSR ile birlikte oluşturulan özel anahtarın yolu.
  • SSLProtocol -all +TLSv1.2 +TLSv1.3 – eski ve güvensiz SSL/TLS protokollerini devre dışı bırakır; yalnızca TLS 1.2 ve TLS 1.3’e izin verir.
  • Strict-Transport-Security (HSTS) – tarayıcılara yalnızca HTTPS üzerinden bağlanmalarını bildirir. mod_headers gerektirir (Adım 2’de etkinleştirildi). Yalnızca HTTPS’nin doğru çalıştığını onayladıktan sonra etkinleştirin.

Bu satırların hiçbirinin # ile başlamadığından emin olun (aksi takdirde yorum satırı olarak değerlendirilirler). Debian/Ubuntu’da ${APACHE_LOG_DIR} değişkeni /var/log/apache2 olarak çözümlenir; RHEL tabanlı sistemlerde bunun yerine /var/log/httpd/ kullanın.

Eski sunucular: Apache 2.4.8’den daha eski bir sürümde kalmak zorundaysanız, sertifikayı ve zinciri ayrı dosyalarda tutun ve kullanımdan kaldırılmış SSLCertificateChainFile /etc/ssl/example_com.ca-bundle yönergesini SSLCertificateFile‘ın altına ekleyin. Modern sunucularda yukarıdaki tam zincir yaklaşımı tercih edilir.

Gelişmiş sertleştirme (isteğe bağlı): daha güçlü bir şifre paketi ve OCSP zımbalama için Mozilla SSL Configuration Generator ile özelleştirilmiş bir yapılandırma oluşturun. OCSP zımbalama ayrıca global Apache yapılandırmanızda bir SSLStaplingCache yönergesi gerektirir.

Adım 5: HTTP’yi HTTPS’ye yönlendirin

Ziyaretçilerin her zaman sitenizin güvenli sürümüne ulaşmasını sağlamak için, tüm HTTP trafiğini kalıcı olarak HTTPS’ye yönlendiren 80 numaralı portta ikinci bir sanal ana bilgisayar ekleyin:


    ServerName www.example.com
    Redirect permanent / https://www.example.com/

Adım 6: Yapılandırmanızı test edin ve Apache’yi yeniden başlatın

Yeniden başlatmadan önce her zaman yapılandırmanızı test edin. Bir sözdizimi hatası sitenizi çevrimdışı bırakabilir; bu nedenle şunu çalıştırın:

sudo apachectl configtest

Her şey doğruysa şunu göreceksiniz:

Syntax OK

Şimdi Apache’yi yeniden yükleyerek değişiklikleri uygulayın (yeniden yükleme, mevcut bağlantıları kesmeden yeni yapılandırmayı etkinleştirir):

sudo systemctl reload apache2     # Debian/Ubuntu
sudo systemctl reload httpd       # RHEL/CentOS/AlmaLinux/Rocky

Yeniden yükleme yeterli olmazsa, bunun yerine servisi yeniden başlatın (sudo systemctl restart apache2 veya httpd). systemd bulunmayan eski sistemlerde sudo apachectl graceful komutunu kullanın.

Kurulum başarılıysa tebrikler! Web siteniz artık SSL/TLS ile güvence altına alınmıştır.

SSL kurulumunuzu test edin

SSL sertifikanızı Apache üzerine kurduktan sonra her şeyin beklendiği gibi çalıştığını doğrulayın. Anlık bir tarama, sertifikanızın performansını etkileyebilecek hataları veya güvenlik açıklarını ortaya çıkaracaktır. Kurulumunuzun durumunu kontrol etmek için SSL Checker aracımızı kullanın.

Sertifikayı ve zincirini doğrudan komut satırından da doğrulayabilirsiniz:

openssl s_client -connect www.example.com:443 -servername www.example.com

Apache için SSL sertifikası nereden satın alınır?

Apache için SSL sertifikası almanın en iyi yeri SSL Dragon‘dur. Tüm SSL ürün yelpazemizde rakipsiz fiyatlar ve indirimler sunuyoruz; web sitenizi kurşun geçirmez bir koruma ile donatmak için piyasadaki en iyi SSL markalarını özenle seçtik. Tüm SSL sertifikalarımız Apache ile uyumludur. Hemen bir SSL sertifikası edinin!

SSL/TLS sertifikalarının geçerlilik sürelerinin kısaldığını unutmayın: maksimum geçerlilik süresi Mart 2026’da 200 güne, 2027’de 100 güne ve 2029’a kadar yalnızca 47 güne düşecektir. Daha kısa yaşam döngüleri daha sık yenileme anlamına gelir; bu nedenle yenileme sürecinizi (ve otomasyonunu) önceden planlamaya değer.

Sıkça Sorulan Sorular

Apache’de SSL nedir?

SSL (Secure Sockets Layer), artık TLS (Transport Layer Security) tarafından yerini almış olup, iki ağ uç noktası arasındaki iletişimi şifreleyen bir kriptografik protokoldür; örneğin Apache gibi bir web sunucusu ile kullanıcının tarayıcısı arasında.

Apache SSL’nin etkin olup olmadığını nasıl anlarım?

Debian ve Ubuntu dağıtımlarında, yapılandırmada SSL protokol yönergesini arayın:

grep -ir SSLProtocol /etc/apache2/

SSL yapılandırılmışsa, şuna benzer bir çıktı göreceksiniz:

/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3

SSL modülünün çalışan sunucuya yüklendiğini de doğrulayabilirsiniz:

apachectl -M | grep ssl

Apache’de SSL .conf dosyası nerede bulunur?

Yapılandırma dosyası, işletim sisteminize ve kurulumunuza bağlı olarak farklı konumlarda bulunabilir. Debian/Ubuntu’da /etc/apache2/apache2.conf dosyasını ve /etc/apache2/sites-available/ dizinindeki site bazlı dosyaları kontrol edin. RHEL/CentOS/AlmaLinux/Rocky’de /etc/httpd/conf/httpd.conf ve /etc/httpd/conf.d/ssl.conf dosyalarını kontrol edin.

SSLCertificateFile ile SSLCertificateChainFile arasındaki fark nedir?

SSLCertificateFile sunucu sertifikanıza işaret eder. Apache 2.4.8’den itibaren aynı dosya ara sertifikaları da barındırabilir; böylece tam zinciri sunar. SSLCertificateChainFile, bu ara sertifikaları ayrı olarak sağlamanın eski yöntemiydi; ancak Apache 2.4.8’den itibaren kullanımdan kaldırılmıştır. Modern sunucularda sertifikayı ve ara sertifikaları tek bir dosyaya yerleştirin ve yalnızca SSLCertificateFile ile referans verin.

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.