Bu kılavuzda, Apache httpd web sunucusunu kullanarak CentOS’a nasıl SSL sertifikası kurulacağını ve onun RHEL ailesi ardılları (AlmaLinux, Rocky Linux ve CentOS Stream) üzerinde nasıl uygulanacağını öğreneceksiniz.
Ayrıca sizi tüm süreç boyunca yönlendiren bir video da kaydettik. Metin versiyonunu tercih ediyorsanız, aşağıda okumaya devam edin.
CSR kodu oluşturun
Bir SSL sertifikası için başvurduğunuzda, önce bir CSR (Sertifika İmzalama Talebi) oluşturur ve bunu Sertifika Yetkilisine gönderirsiniz. CSR, iletişim ve alan adı bilgilerinizi içeren bir metin bloğudur ve aynı anda oluşturulan bir özel anahtarla eşleşir. İki seçeneğiniz var:
- CSR’yi otomatik olarak oluşturmak için CSR Generator aracımızı kullanın.
- CentOS’ta CSR nasıl oluşturulur adım adım eğitimimizi takip edin.
Ödeme sırasında CSR’yi Sertifika Yetkilisine gönderin. CA bunu doğruladıktan ve sertifikanızı verdikten sonra, aşağıdaki kurulumla devam edin.
CentOS / RHEL’e SSL sertifikası kurun (Apache)
Sürümler hakkında uyarı: CentOS Linux 8, 31 Aralık 2021’de kullanım ömrünün sonuna ulaştı ve CentOS Linux 7, 30 Haziran 2024’te EOL’e ulaştı. Üretim için desteklenen bir RHEL ailesi dağıtımı çalıştırın: RHEL 8/9/10, AlmaLinux, Rocky Linux veya CentOS Stream. Hepsi aynı Apache httpd yapısını paylaşır, dolayısıyla aşağıdaki adımlar bunların her biri için geçerlidir.
Başlamadan önce
Doğrulamadan sonra, Sertifika Yetkiliniz size sertifika dosyalarını e-posta ile gönderir. Bu üç ayrı dosyanın hazır olduğundan emin olun:
- yourdomain.crt, ana SSL sertifikanız.
- yourdomain.ca-bundle, ara sertifikalar (CA bundle).
- yourdomain.key, CSR ile oluşturduğunuz özel anahtar.
Önemli: özel anahtarı asla sertifika zincirine dahil etmeyin. Anahtar kendi dosyasında kalmalı ve yalnızca root tarafından okunabilir olmalıdır.
Adım 1: TLS desteğini kurun (mod_ssl)
Apache’ye TLS desteği ekleyen ve /etc/httpd/conf.d/ssl.conf konumuna varsayılan bir TLS yapılandırması bırakan mod_ssl‘i kurun:
sudo dnf install -y mod_ssl
Halen yum paket yöneticisini kullanan daha eski sistemlerde, bunun yerine sudo yum install -y mod_ssl komutunu çalıştırın.
Adım 2: SSL dosyalarınızı yerleştirin
Özel anahtarı /etc/pki/tls/private/ dizinine kopyalayın ve sadece root’un okuyabilmesi için izinlerini kilitleyin:
sudo cp yourdomain.key /etc/pki/tls/private/
sudo chown root:root /etc/pki/tls/private/yourdomain.key
sudo chmod 600 /etc/pki/tls/private/yourdomain.key
Ardından, sertifikanızı ve CA paketini birleştirerek tam zincir dosyasını oluşturun ve bunu /etc/pki/tls/certs/ dizinine yerleştirin:
cat yourdomain.crt yourdomain.ca-bundle
| sudo tee /etc/pki/tls/certs/yourdomain-fullchain.crt > /dev/null
Tam zincir dosyası yalnızca genel sertifikayı ve ara zinciri içermeli, asla özel anahtarı içermemelidir.
Adım 3: Apache TLS sanal ana bilgisayarını yapılandırın
mod_ssl’in oluşturduğu varsayılan /etc/httpd/conf.d/ssl.conf dosyasını düzenleyebilir veya (daha temiz bir yöntem olarak) siteniz için özel bir dosya oluşturabilirsiniz, örneğin /etc/httpd/conf.d/yourdomain.conf. Bir metin düzenleyici ile açın:
sudo nano /etc/httpd/conf.d/yourdomain.conf
Tüm trafiği HTTPS’e yönlendiren bir 80 numaralı port sanal ana bilgisayarı ekleyin, ardından SSL yönergelerinizi içeren güvenli 443 numaralı port sanal ana bilgisayarını ekleyin:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain-fullchain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
</VirtualHost>
- SSLCertificateFile, tam zincir dosyanız (sertifika + ara sertifikalar). Apache 2.4.8 ve daha yeni sürümlerinde, bu tek yönerge kullanımdan kaldırılan SSLCertificateChainFile‘ın yerini alır.
- SSLCertificateKeyFile, CSR ile oluşturduğunuz özel anahtar.
Varsayılan ana bilgisayar hakkında not: mod_ssl’in /etc/httpd/conf.d/ssl.conf dosyası, kendi <VirtualHost _default_:443> tanımını, kendinden imzalı bir sertifikayla birlikte sunar. Yukarıdaki gibi siteye özel bir *:443 ana bilgisayarı eklediğinizde, ServerName‘inizle eşleşen istekler sertifikanızı kullanır, ancak eşleşmeyen HTTPS istekleri (örneğin sunucuya IP adresi üzerinden erişildiğinde) hâlâ bu varsayılan kendinden imzalı ana bilgisayara geri döner. Bu geri dönüşü istemiyorsanız, ssl.conf içindeki <VirtualHost _default_:443> bloğunu yorum satırına alın veya kendi sertifikanıza yönlendirin.
TLS güçlendirmesi hakkında not: RHEL 8 ve daha yeni sürümlerdeki Apache, eski protokolleri zaten devre dışı bırakan sistem çapında şifreleme politikasını takip eder. Politikayı tüm sunucuda ayarlamak için sudo update-crypto-policies --set DEFAULT komutunu çalıştırın (daha sıkı ayarlar için FUTURE kullanın). Bunun yerine protokolleri sanal ana bilgisayar başına sabitlemeyi tercih ediyorsanız, 443 numaralı port bloğunun içine SSLProtocol -all +TLSv1.2 +TLSv1.3 ekleyin.
Adım 4: Apache yapılandırmanızı test edin
Yeniden yüklemeden önce her zaman sözdizimini kontrol edin, çünkü tek bir yazım hatası siteyi çevrimdışı bırakabilir:
sudo apachectl configtest
Syntax OK mesajını görmelisiniz. (sudo httpd -t komutu da aynı işi yapar.) Devam etmeden önce bildirilen hataları düzeltin.
Adım 5: Apache’yi yeniden başlatın
Değişiklikleri httpd hizmetini yeniden yükleyerek uygulayın (yeniden yükleme, canlı bağlantıları düşürmeden yeni yapılandırmayı etkinleştirir):
sudo systemctl reload httpd
httpd henüz çalışmıyorsa, sudo systemctl enable --now httpd ile başlatın. Web siteniz artık HTTPS üzerinden çalışıyor olmalı. Sonucu doğrulamak ve anında bir durum raporu almak için SSL Checker aracımızı kullanın.
Daha eski CentOS (7 ve öncesi) için notlar
CentOS Linux 7, 6 ve 8’in hepsi kullanım ömrünün sonuna ulaşmıştır ve artık güvenlik güncellemeleri almamaktadır, dolayısıyla mümkün olduğunda desteklenen bir RHEL ailesi dağıtımına geçiş yapın. Eski bir sunucu üzerinde çalışmanız gerekiyorsa, süreç yukarıdakiyle aynıdır, sadece iki fark vardır:
- Paket yöneticisi: CentOS 7 ve 6, dnf yerine yum kullanır. mod_ssl’in zaten kurulu olup olmadığını
rpm -qa | grep mod_sslile kontrol edin ve değilsesudo yum install -y mod_sslile kurun. - 2.4.8’den eski Apache: yalnızca çok eski sürümler 2.4.8’den önceye aittir. Bu durumda, sertifikayı ve zinciri ayrı dosyalarda tutun ve CA bundle‘a (sertifikanıza değil) işaret eden üçüncü bir yönerge olan SSLCertificateChainFile‘ı ekleyin:
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
Apache 2.4.8 ve daha yeni sürümlerde (şu anda desteklenen her sürümü kapsar), bunun yerine Adım 3’te gösterilen daha basit tek dosyalı tam zincir SSLCertificateFile yöntemini kullanın.
CentOS için SSL sertifikası nereden satın alınır?
CentOS sunucunuz için SSL sertifikası satın almanın en iyi yeri, SSL Dragon gibi saygın bir SSL bayisidir. Fiyatlarımız piyasadaki en düşük fiyatlar arasındadır ve tüm SSL ürün yelpazemizde düzenli indirimler ve harika fırsatlar sunuyoruz, üstelik olağanüstü müşteri desteğiyle destekleniyoruz. Tüm sertifikalarımız CentOS ve onun RHEL ailesi ardılları ile uyumludur.
SSL Dragon, hassas veri güvenliğinizle ilgilenir, böylece web siteniz veya işletmeniz çevrimiçi olarak gelişebilir.
Sıkça Sorulan Sorular
Sitenize OpenSSL ile bağlanın ve sunduğu sertifikayı okuyun:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Bir sertifika kuruluysa, bu komut yayıncısını ve geçerlilik tarihlerini yazdırır. Disk üzerindeki bir sertifika dosyasını incelemek için ise openssl x509 -text -noout -in certificate.crt komutunu çalıştırın. Apache’nin etkin sanal ana bilgisayarlarını sudo apachectl -S ile de listeleyebilir veya sitenizi bir tarayıcıda açıp kilit simgesini kontrol edebilirsiniz.
Geleneksel olarak, sertifikalar /etc/pki/tls/certs/ dizinine ve özel anahtarlar /etc/pki/tls/private/ dizinine yerleştirilir. Bunlar RHEL ailesinin varsayılan konumlarıdır; sanal ana bilgisayarınız bunlara işaret ettiği sürece başka konumlar da kullanabilirsiniz.
TLS modülü varsayılanlarını /etc/httpd/conf.d/ssl.conf konumuna kurar ve ana Apache yapılandırması /etc/httpd/conf/httpd.conf‘dir. Sanal ana bilgisayarlarınızı ssl.conf‘e ekleyebilirsiniz, ancak siteye özel bir dosya oluşturmak, örneğin /etc/httpd/conf.d/yourdomain.conf, daha temizdir. /etc/httpd/conf.d/ içindeki herhangi bir .conf dosyası otomatik olarak yüklenir. Apache günlükleri /var/log/httpd/ dizininde bulunur.
Apache 2.4.8 ve sonraki sürümlerde (şu anda desteklenen her RHEL ailesi sürümü), evet: sertifikanızı ve CA bundle’ınızı tek bir tam zincir dosyasında birleştirin ve SSLCertificateFile‘ı buna yönlendirin. Ayrı SSLCertificateChainFile yönergesi kullanımdan kaldırılmıştır ve yalnızca 2.4.8’den daha eski Apache sürümlerinde gereklidir.
OpenSSL, CentOS ve diğer tüm önemli Linux dağıtımlarında önceden yüklü olarak gelir, dolayısıyla genellikle kurmanız gerekmez. Eksikse, sudo dnf install -y openssl ile ekleyin (veya CentOS 7 ve öncesinde sudo yum install -y openssl). OpenSSL ve komut satırları hakkında daha fazla bilgi edinin.
Sonuç olarak
Apache ile CentOS veya RHEL üzerine SSL sertifikası kurmak, mod_ssl‘i kurmaya, özel anahtarınızı ve tam zincir sertifikanızı /etc/pki/tls/ altına yerleştirmeye, /etc/httpd/conf.d/ içindeki <VirtualHost *:443> bloğunu yapılandırmaya, sudo apachectl configtest ile test etmeye ve sudo systemctl reload httpd ile yeniden yüklemeye dayanır. Önce bir sertifikaya mı ihtiyacınız var? SSL sertifikalarımıza göz atın.
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

