Bu kılavuzda, Apache üzerinde SSL sertifikasının nasıl kurulacağını adım adım öğreneceksiniz. Talimatlar, güncel kararlı sürüm serisi olan Apache 2.4 için geçerlidir.
İçindekiler
- Apache’de CSR kodu nasıl oluşturulur?
- Apache’de SSL sertifikası kurma
- SSL kurulumunuzu test edin
- Apache için SSL sertifikası nereden satın alınır?
Apache’de CSR kodu nasıl oluşturulur?
Sertifika İmzalama Talebi, 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şvurusunda bulunanlardan bu adımı tamamlamalarını ister.
İki seçeneğiniz var:
- CSR Oluşturucumuzu kullanarak CSR’ı otomatik olarak oluşturun.
- Apache’de CSR oluşturma konulu adım adım eğitimimizi takip edin.
Apache’de SSL sertifikası kurma
Sertifika Yetkilisi, SSL sertifikasını imzalayıp size gönderdikten sonra, bunu güvenli bir şekilde Apache sunucunuza 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ı indirin ve çıkarı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. Tarayıcıların ve uygulamaların sertifikanızı doğrulayabilmesi için bu zincir gereklidir. Bu dosya olmadan bazı istemciler sitenizi güvenli değil olarak işaretleyebilir.
Bu dosyaları, CSR’ınızla birlikte oluşturduğunuz özel anahtar (.key) ile birlikte, sunucunuzda güvenli bir dizine, örneğin /etc/ssl/ içine yükleyin. Özel anahtarın sadece root tarafından okunabilir olmasını sağlayın (chmod 600).
Önerilen (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ükler, 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 sağladıysa, bunları önce sertifikanızla, ardından sertifikanızı imzalayandan başlayarak köke kadar sıralanmış ara sertifikalarla birleştirin (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 sertifika paketiyle birleştirirsiniz. 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’yi yapılandırmadan önce, Apache’nin SSL modülünün etkin olduğundan emin olun.
Debian/Ubuntu üzerinde, mod_ssl‘i (ve Adım 4’te HSTS başlığı için gerekli olacak 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 başına yapılandırmalar /etc/apache2/sites-available/ içinde.
- 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 özel SSL kurulum talimatlarımızı da takip edebilirsiniz.
Adım 4: Sanal sunucuyu yapılandırın
Öncelikle, mevcut yapılandırma dosyanızın yedeğini alın. Bu şekilde, bir sorun oluşursa 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 (443 numaralı bağlantı noktası) sanal sunucusunu kurun. Eksiksiz, modern bir sanal sunucu şu şekilde görünür:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : sunucu sertifikası + ara zincir TEK bir dosyada
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Önerilen TLS güçlendirmesi (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Tarayıcılara her zaman HTTPS kullanmalarını bildirin. HSTS'i etkinleştirmek için
# baştaki # işaretini kaldırın, ancak sadece HTTPS'nin düzgün çalıştığını
# doğruladıktan sonra:
# 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
</VirtualHost>
example.com, belge kökünü ve dosya yollarını kendi değerlerinizle değiştirin. Ana yönergelerin ne yaptığı aşağıda açıklanmıştır:
- SSLEngine on – bu sanal sunucu için SSL/TLS’yi etkinleştirir.
- SSLCertificateFile – Adım 1’de oluşturduğunuz tam zincir dosyasının (sertifika + ara sertifikalar) yolu. Apache 2.4.8+ sürümlerinde bu tek yönerge, kullanımdan kaldırılan SSLCertificateChainFile yönergesinin yerini alır.
- SSLCertificateKeyFile – CSR ile birlikte oluşturulan özel anahtarınızın yolu.
- SSLProtocol -all +TLSv1.2 +TLSv1.3 – eski, güvensiz SSL/TLS protokollerini devre dışı bırakır ve sadece TLS 1.2 ile TLS 1.3’e izin verir.
- Strict-Transport-Security (HSTS) – tarayıcılara sadece HTTPS üzerinden bağlanmalarını bildirir. mod_headers (Adım 2’de etkinleştirildi) gerektirir. Bunu, HTTPS’nin düzgün çalıştığını doğruladıktan sonra etkinleştirin.
Bu satırların hiçbirinin # ile başlamadığından emin olun (bu, onları yorum satırı haline getirir). Debian/Ubuntu üzerinde ${APACHE_LOG_DIR}, /var/log/apache2 olarak çözümlenir; RHEL tabanlı sistemlerde ise bunun yerine /var/log/httpd/ kullanın.
Eski sunucular: Apache 2.4.8’den daha eski bir sürümde kaldıysanız, sertifikayı ve zinciri ayrı dosyalarda tutun ve SSLCertificateFile altına kullanımdan kaldırılan SSLCertificateChainFile /etc/ssl/example_com.ca-bundle yönergesini ekleyin. Herhangi bir modern sunucuda, yukarıdaki tam zincir yaklaşımı tercih edilir.
Gelişmiş güçlendirme (isteğe bağlı): daha güçlü bir şifreleme paketi ve OCSP damgalama için, Mozilla SSL Configuration Generator ile özel bir yapılandırma oluşturun. OCSP damgalama, genel Apache yapılandırmanızda ayrıca bir SSLStaplingCache yönergesi de gerektirir.
Siteyi etkinleştirin: Debian/Ubuntu üzerinde, /etc/apache2/sites-available/ içine yerleştirilen bir sanal sunucu, siz onu etkinleştirene kadar yüklenmez. Bu yapılandırmayı yeni bir dosya olarak kaydettiyseniz (örneğin example-ssl.conf), şu şekilde etkinleştirin:
sudo a2ensite example-ssl.conf
Bunun yerine önceden gelen default-ssl.conf dosyasını da düzenleyebilirsiniz, ancak bunun da a2ensite default-ssl ile etkinleştirilmesi gerekir. RHEL/CentOS/AlmaLinux/Rocky üzerinde, /etc/httpd/conf.d/ içindeki dosyalar otomatik olarak yüklenir — ancak ssl.conf‘un zaten kendinden imzalı bir sertifikaya sahip varsayılan bir <VirtualHost _default_:443> bloğu içerdiğini unutmayın, bu nedenle iki çakışan 443 numaralı bağlantı noktası sunucusundan kaçınmak için ya bu bloğu düzenleyin ya da sanal sunucunuzu /etc/httpd/conf.d/yourdomain.conf gibi ayrı bir dosya olarak ekleyin.
Adım 5: HTTP’den HTTPS’ye yönlendirme yapın
Ziyaretçilerin sitenizin her zaman 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ı bağlantı noktasında ikinci bir sanal sunucu ekleyin:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
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ışı hale getirebilir, 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 değilse, bunun yerine hizmeti yeniden başlatın (sudo systemctl restart apache2 veya httpd). systemd olmayan eski sistemlerde sudo apachectl graceful kullanın.
Kurulum başarılıysa, tebrikler! Web siteniz artık SSL/TLS ile güvence altında.
SSL kurulumunuzu test edin
Apache üzerinde SSL sertifikanızı 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ı edinmenin en iyi yeri SSL Dragon‘dur. Tüm SSL ürün yelpazemizde eşsiz fiyatlar ve indirimler sunuyoruz ve web sitenizi güçlü bir korumayla donatmak için piyasadaki en iyi SSL markalarını dikkatle seçtik. Tüm SSL sertifikalarımız Apache ile uyumludur. Hemen bir SSL sertifikası edinin!
SSL/TLS sertifika ömürlerinin 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 sadece 47 güne düşecek. Daha kısa yaşam döngüleri daha sık yenileme anlamına gelir, bu nedenle yenileme sürecinizi (ve otomasyonunuzu) önceden planlamaya değer.
Sıkça Sorulan Sorular
SSL (Secure Sockets Layer), şimdi TLS (Transport Layer Security) tarafından devralınmıştır ve iki ağ uç noktası arasındaki iletişimi şifreleyen kriptografik bir protokoldür, örneğin Apache gibi bir web sunucusu ile bir kullanıcının tarayıcısı arasındaki iletişim.
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
Yapılandırma dosyası, işletim sisteminize ve kurulumunuza bağlı olarak farklı konumlarda bulunabilir. Debian/Ubuntu üzerinde /etc/apache2/apache2.conf ve /etc/apache2/sites-available/ içindeki site bazlı dosyaları kontrol edin. RHEL/CentOS/AlmaLinux/Rocky üzerinde /etc/httpd/conf/httpd.conf ve /etc/httpd/conf.d/ssl.conf dosyalarını kontrol edin.
SSLCertificateFile sunucu sertifikanızı işaret eder. Apache 2.4.8’den itibaren, aynı dosya ara sertifikaları da tutabilir, böylece tam zinciri sağlar. SSLCertificateChainFile, bu ara sertifikaları ayrı olarak sağlamanın eski yoluydu, ancak Apache 2.4.8’den itibaren kullanımdan kaldırılmıştır. Herhangi bir modern sunucuda, sertifikayı ve ara sertifikaları tek bir dosyaya yerleştirin ve sadece 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


