Takip et

Apache ve CentOS 7 Üzerinde SSL Sertifikası Oluşturma: Kapsamlı Bir Rehber

Apache ve CentOS 7 Üzerinde SSL Sertifikası Oluşturma: Kapsamlı Bir Rehber Giriş Günümüz internet dünyasında web sitelerinin güvenliği,

Apache ve CentOS 7 Üzerinde SSL Sertifikası Oluşturma: Kapsamlı Bir Rehber

Giriş

Günümüz internet dünyasında web sitelerinin güvenliği, kullanıcı deneyimi ve arama motoru optimizasyonu (SEO) açısından kritik bir öneme sahiptir. Kullanıcılar, hassas bilgilerini (şifreler, kredi kartı bilgileri vb.) paylaştıkları veya sadece gezindikleri sitelerde gizliliklerinin ve verilerinin bütünlüğünün korunduğundan emin olmak isterler. İşte tam da bu noktada SSL/TLS (Secure Sockets Layer/Transport Layer Security) sertifikaları devreye girer. SSL/TLS, web sunucusu ile web tarayıcısı arasındaki iletişimi şifreleyerek üçüncü tarafların bu iletişimi dinlemesini veya değiştirmesini engeller. Bir web sitesi HTTPS protokolünü kullandığında, adres çubuğunda genellikle bir kilit simgesi belirir ve bu, kullanıcıya sitenin güvenli olduğunu gösterir.

Bu makalede, açık kaynak dünyasının en popüler işletim sistemlerinden CentOS 7 ve en yaygın kullanılan web sunucularından Apache HTTP Server üzerinde nasıl bir SSL sertifikası oluşturulacağını ve yapılandırılacağını adım adım ele alacağız. İster test ortamı için kendinden imzalı bir sertifika oluşturun, ister üretim ortamı için Let’s Encrypt gibi güvenilir bir Sertifika Yetkilisinden (CA) ücretsiz bir sertifika alın, bu rehber size gerekli tüm bilgileri sunacaktır. Amacımız, CentOS 7 ve Apache kullanıcılarının web sitelerini güvenli hale getirme sürecini basitleştirmek ve karşılaşabilecekleri olası sorunlara çözümler sunmaktır.

Ön Gereksinimler

Bu rehberdeki adımları başarıyla tamamlamak için aşağıdaki ön koşulların yerine getirilmiş olması gerekmektedir:

* CentOS 7 Sunucusu: Temel kurulumu yapılmış, çalışan bir CentOS 7 sunucusuna sahip olmalısınız.
* Sudo Yetkileri: Sunucuda root kullanıcısı olarak veya sudo yetkilerine sahip bir kullanıcı ile oturum açmış olmanız gerekmektedir.
* Apache HTTP Sunucusu: Apache web sunucusunun sunucunuzda kurulu ve çalışır durumda olması gerekmektedir. Eğer kurulu değilse, ilk adımlarda nasıl kurulacağı anlatılacaktır.
* Alan Adı (Domain Name): SSL sertifikası oluşturacağınız bir alan adına (örneğin, alanadiniz.com) sahip olmalı ve bu alan adının DNS A kaydının sunucunuzun genel IP adresine doğru şekilde yönlendirilmiş olması gerekmektedir.
* SSH Erişimi: Sunucunuza SSH aracılığıyla erişebiliyor olmanız gerekmektedir.

Temel Kavramlar

SSL sertifikası oluşturma sürecine başlamadan önce, ilgili temel kavramları anlamak, sürecin neden bu şekilde işlediğini kavramanıza yardımcı olacaktır.

SSL/TLS Nedir?

SSL (Secure Sockets Layer) ve onun daha modern ve güvenli halefi olan TLS (Transport Layer Security), internet üzerindeki iletişimi şifrelemek için kullanılan kriptografik protokollerdir. Bu protokoller, web sunucusu ile tarayıcı arasında güvenli bir bağlantı kurarak, gönderilen ve alınan verilerin gizliliğini (şifreleme), bütünlüğünü (verilerin değiştirilmediğini doğrulama) ve kimlik doğrulamasını (sunucunun iddia ettiği kişi olduğunu doğrulama) sağlar. HTTPS (Hypertext Transfer Protocol Secure), HTTP’nin SSL/TLS ile şifrelenmiş halidir.

Sertifika Yetkilisi (CA)

Sertifika Yetkilisi (Certificate Authority), dijital sertifikaları düzenleyen ve imzalayan güvenilir bir üçüncü taraftır. CA’lar, bir web sitesinin veya sunucunun kimliğini doğrulayarak, bu kimliği bir SSL sertifikası ile onaylar. Tarayıcılar, CA’ların kök sertifikalarını (root certificates) önceden yüklenmiş olarak gelir ve bu sayede CA tarafından imzalanmış sertifikalara güvenirler.

Kendinden İmzalı (Self-Signed) Sertifika

Kendinden imzalı sertifika, bir CA tarafından imzalanmak yerine, doğrudan sizin tarafınızdan imzalanmış bir sertifikadır. Bu tür sertifikalar, güvenilir bir üçüncü tarafça doğrulanmadığı için tarayıcılar tarafından “güvenli değil” olarak işaretlenir ve kullanıcıya bir güvenlik uyarısı gösterilir. Kendinden imzalı sertifikalar genellikle geliştirme, test ortamları veya dahili ağlar için kullanılır.

Özel Anahtar (Private Key)

Özel anahtar, bir anahtar çiftinin (genel ve özel anahtar) gizli olan kısmıdır. Bu anahtar, sunucunuzda güvenli bir şekilde saklanmalı ve asla kimseyle paylaşılmamalıdır. Verileri şifrelemek ve dijital imzaları oluşturmak için kullanılır.

Sertifika İmzalama İsteği (CSR – Certificate Signing Request)

CSR, bir SSL sertifikası almak için CA’ya gönderdiğiniz bir istektir. Bu istek, genel anahtarınızı ve web sitenizin adı, kuruluşu, konumu gibi kimlik bilgilerinizi içerir. CA, bu bilgileri kullanarak sertifikayı oluşturur ve imzalar.

Genel Anahtar (Public Key)

Genel anahtar, özel anahtarın eşidir ve herkesle paylaşılabilir. Genel anahtar, özel anahtar tarafından şifrelenmiş verileri çözmek ve dijital imzaları doğrulamak için kullanılır.

Ortak Ad (Common Name – CN)

Ortak Ad (CN), SSL sertifikasının hangi alan adı için verildiğini belirtir. Bu, genellikle web sitenizin tam nitelikli alan adıdır (FQDN), örneğin www.example.com veya example.com. Sertifikanın doğru çalışabilmesi için tarayıcının eriştiği alan adının sertifikadaki Ortak Ad ile eşleşmesi hayati öneme sahiptir.

Adım 1: Apache Web Sunucusunu Kurma ve Yapılandırma (Eğer Kurulu Değilse)

Eğer Apache sunucunuz zaten kurulu ve çalışır durumdaysa, bu adımı atlayabilirsiniz.

Apache Kurulumu

CentOS 7’de Apache HTTP Sunucusunu kurmak için aşağıdaki komutları kullanın:

sudo yum update
sudo yum install httpd

sudo yum update komutu, sisteminizdeki mevcut paketleri güncelleyerek olası bağımlılık sorunlarını önler. sudo yum install httpd ise Apache paketini kurar.

Apache’yi Başlatma ve Etkinleştirme

Kurulum tamamlandıktan sonra Apache hizmetini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl start httpd
sudo systemctl enable httpd

systemctl start httpd komutu Apache hizmetini anında başlatır. systemctl enable httpd komutu ise sunucu yeniden başlatıldığında Apache’nin otomatik olarak çalışmasını sağlar.

Güvenlik Duvarı Ayarları

CentOS 7’de varsayılan güvenlik duvarı olan Firewalld, HTTP (80) ve HTTPS (443) portlarını engelliyor olabilir. Bu portları dışarıdan gelen bağlantılara açmanız gerekmektedir:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Bu komutlar, HTTP ve HTTPS hizmetlerine kalıcı erişim izni verir ve güvenlik duvarı kurallarını yeniden yükleyerek değişiklikleri etkinleştirir.

Apache Kurulumunu Test Etme

Web tarayıcınızı açın ve sunucunuzun IP adresini veya alan adınızı girin. Eğer Apache doğru şekilde kurulduysa, “CentOS Linux Test Page” veya benzeri bir varsayılan Apache sayfası görmelisiniz.

Adım 2: Mod_SSL Modülünü Kurma

Apache’nin SSL/TLS bağlantılarını işleyebilmesi için mod_ssl modülünün kurulu olması gerekmektedir. Bu modül, OpenSSL kütüphanesini kullanarak şifreleme işlemlerini yönetir.

sudo yum install mod_ssl

Bu komut, mod_ssl paketini kurar. Kurulum sırasında genellikle /etc/httpd/conf.d/ssl.conf adında varsayılan bir SSL yapılandırma dosyası da oluşturulur.

Modülün yüklenmesi sonrasında Apache’yi yeniden başlatmak iyi bir uygulamadır:

sudo systemctl restart httpd

Adım 3: Özel Anahtar (Private Key) ve Sertifika İmzalama İsteği (CSR) Oluşturma

Bu adım, hem kendinden imzalı bir sertifika oluştururken hem de güvenilir bir CA’dan sertifika alırken ortaktır. İlk olarak özel anahtarınızı oluşturacak, ardından bu anahtarı kullanarak bir CSR dosyası hazırlayacaksınız.

Özel Anahtar Oluşturma

Özel anahtar, sertifikanızın güvenliğinin temelidir. 2048 bit RSA anahtarı genellikle yeterli güvenlik sağlar ve endüstri standardıdır.

sudo openssl genrsa -out /etc/pki/tls/private/alanadiniz.key 2048

Bu komut:
* openssl genrsa: RSA özel anahtarı oluşturmak için OpenSSL komutudur.
* -out /etc/pki/tls/private/alanadiniz.key: Oluşturulan anahtarın kaydedileceği yolu ve dosya adını belirtir. alanadiniz.key yerine kendi alan adınızı veya sitenizi tanımlayan bir isim kullanmanız önerilir. Bu dizin (/etc/pki/tls/private/) genellikle özel anahtarlar için varsayılan ve güvenli bir konumdur.
* 2048: Anahtarın bit uzunluğunu belirtir.

Anahtar oluşturulduktan sonra, bu dosyanın sadece root kullanıcısı tarafından okunabilir olduğundan emin olmak için izinlerini ayarlamak önemlidir:

sudo chmod 600 /etc/pki/tls/private/alanadiniz.key

Sertifika İmzalama İsteği (CSR) Oluşturma

Özel anahtarınızı kullanarak bir CSR dosyası oluşturabilirsiniz. Bu dosya, sertifika yetkilisine göndereceğiniz bilgileri içerir.

sudo openssl req -new -key /etc/pki/tls/private/alanadiniz.key -out /etc/pki/tls/certs/alanadiniz.csr

Bu komut çalıştırıldığında, sizden bazı bilgiler istenecektir. Bu bilgileri doğru ve eksiksiz doldurmanız önemlidir:

* Country Name (2 letter code) [XX]: Ülke kodunuzu girin (örn: TR).
* State or Province Name (full name) []: Eyalet veya il adınızı girin (örn: Istanbul).
* Locality Name (eg, city) []: Şehir adınızı girin (örn: Kadikoy).
* Organization Name (eg, company) []: Şirketinizin veya kuruluşunuzun adını girin (örn: MyCompany).
* Organizational Unit Name (eg, section) []: Kuruluşunuzdaki birimi girin (örn: IT).
* Common Name (e.g. server FQDN or YOUR name) []: Buraya web sitenizin tam alan adını girmeniz hayati önem taşır (örn: alanadiniz.com veya www.alanadiniz.com). Eğer hem alanadiniz.com hem de www.alanadiniz.com için sertifika istiyorsanız, Certbot gibi araçlar bu durumu otomatik olarak yönetir. Manuel CSR oluştururken, birden fazla alan adı için SAN (Subject Alternative Name) özelliği kullanılır, ancak bu komutla tek bir Common Name girilir.
* Email Address []: İletişim e-posta adresinizi girin.
* A challenge password []: Genellikle boş bırakılır.
* An optional company name []: Genellikle boş bırakılır.

CSR dosyası (/etc/pki/tls/certs/alanadiniz.csr) artık oluşturulmuştur. Bu dosyayı güvenilir bir CA’ya göndererek sertifikanızı alabilir veya kendinden imzalı bir sertifika oluşturmak için kullanabilirsiniz.

Adım 4: SSL Sertifikası Oluşturma Yöntemleri

Bu bölümde, iki ana sertifika oluşturma yöntemini inceleyeceğiz: kendinden imzalı sertifika ve güvenilir bir CA’dan sertifika alma (özellikle Let’s Encrypt ile).

Yöntem A: Kendinden İmzalı (Self-Signed) Sertifika Oluşturma

Kendinden imzalı sertifikalar, hızlıca test ortamları kurmak veya dahili ağlarda kullanmak için uygundur. Ancak, tarayıcılar bu sertifikalara güvenmeyeceği için son kullanıcılara yönelik üretim ortamlarında kullanılmamalıdır.

Daha önce oluşturduğunuz özel anahtar ve CSR dosyasını kullanarak kendinden imzalı bir sertifika oluşturabilirsiniz:

sudo openssl x509 -req -days 365 -in /etc/pki/tls/certs/alanadiniz.csr -signkey /etc/pki/tls/private/alanadiniz.key -out /etc/pki/tls/certs/alanadiniz.crt

Bu komut:
* openssl x509: X.509 sertifika yönetimi için OpenSSL komutudur.
* -req: Girdinin bir CSR olduğunu belirtir.
* -days 365: Sertifikanın 365 gün (1 yıl) geçerli olacağını ayarlar. Bu süreyi ihtiyacınıza göre değiştirebilirsiniz.
* -in /etc/pki/tls/certs/alanadiniz.csr: Giriş olarak kullanılacak CSR dosyasının yolunu belirtir.
* -signkey /etc/pki/tls/private/alanadiniz.key: Sertifikayı imzalamak için kullanılacak özel anahtarı belirtir (bu durumda kendimiz imzalıyoruz).
* -out /etc/pki/tls/certs/alanadiniz.crt: Oluşturulan sertifika dosyasının kaydedileceği yolu ve adını belirtir. .crt uzantısı yaygın olarak kullanılır.

Artık /etc/pki/tls/certs/alanadiniz.crt dosyasında kendinden imzalı SSL sertifikanız bulunmaktadır.

Yöntem B: Güvenilir Bir Sertifika Yetkilisinden (CA) Sertifika Alma

Üretim ortamları için her zaman güvenilir bir CA’dan sertifika almanız önerilir. Bu sertifikalar, tüm modern tarayıcılar tarafından otomatik olarak güvenilir kabul edilir. Süreç genellikle şu şekildedir:
1. Oluşturduğunuz CSR dosyasını seçtiğiniz CA’ya (örneğin Comodo, DigiCert, GlobalSign) gönderirsiniz.
2. CA, alan adınızın sahipliğini doğrulamanızı ister (DNS kaydı, e-posta doğrulama vb.).
3. Doğrulama tamamlandıktan sonra, CA size bir veya daha fazla sertifika dosyası gönderir (ana sertifika, ara sertifika zinciri).

Let’s Encrypt ile Otomatik Sertifika Alma (Certbot Kullanarak)

Let’s Encrypt, internetin şifrelenmesini teşvik eden ücretsiz, otomatik ve açık bir Sertifika Yetkilisidir. Certbot aracı, Let’s Encrypt sertifikalarını otomatik olarak almayı ve Apache gibi web sunucularına kurmayı son derece kolaylaştırır.

1. EPEL Deposunu Etkinleştirme:
Certbot’u CentOS 7’ye kurmak için EPEL (Extra Packages for Enterprise Linux) deposunu etkinleştirmeniz gerekebilir:

sudo yum install epel-release

2. Certbot ve Apache Eklentisini Kurma:
EPEL deposu etkinleştirildikten sonra Certbot’u ve Apache için gerekli eklentiyi kurabilirsiniz:

sudo yum install certbot python2-certbot-apache

3. Certbot ile Sertifika Alma:
Certbot’u çalıştırarak sertifikanızı alabilir ve Apache yapılandırmanızı otomatik olarak güncelleyebilirsiniz. Aşağıdaki komutta alanadiniz.com ve www.alanadiniz.com yerine kendi alan adlarınızı girin:

sudo certbot --apache -d alanadiniz.com -d www.alanadiniz.com

Bu komut çalıştırıldığında:
* Bir e-posta adresi girmeniz istenecektir (bildirimler ve kayıp anahtarlar için).
* Let’s Encrypt hizmet şartlarını kabul etmeniz istenecektir.
* HTTP trafiğini otomatik olarak HTTPS’e yönlendirip yönlendirmeyeceğiniz sorulacaktır. “2: Redirect” seçeneğini seçmeniz şiddetle tavsiye edilir.

Certbot, sertifikaları /etc/letsencrypt/live/alanadiniz.com/ dizini altına kaydeder. Bu dizinde fullchain.pem (sunucu sertifikası ve ara sertifikalar) ve privkey.pem (özel anahtar) dosyalarını bulacaksınız.

4. Otomatik Yenileme Testi:
Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, sertifikaların otomatik olarak yenilenmesini sağlamak için bir cron işi veya systemd zamanlayıcısı oluşturur. Yenileme mekanizmasının doğru çalıştığından emin olmak için bir test yapabilirsiniz:

sudo certbot renew --dry-run

Bu komut, sertifikaları yenilemeden yenileme sürecini simüle eder. Eğer bir sorun yoksa, “The dry run was successful.” gibi bir mesaj görmelisiniz.

Adım 5: Apache’yi SSL Kullanacak Şekilde Yapılandırma

SSL sertifikanızı oluşturduktan sonra, Apache’nin bu sertifikayı kullanacak şekilde yapılandırılması gerekir.

Eğer Certbot kullandıysanız, Certbot bu adımların çoğunu sizin için otomatik olarak halletmiş ve Apache yapılandırma dosyalarınızı güncellemiş olmalıdır. Bu durumda, aşağıdaki manuel yapılandırma adımlarını gözden geçirebilirsiniz ancak muhtemelen doğrudan bir işlem yapmanıza gerek kalmayacaktır.

Kendinden imzalı sertifika kullanıyorsanız veya Certbot’un otomatik yapılandırmasını manuel olarak kontrol etmek istiyorsanız, aşağıdaki adımları izleyin.

Apache’nin SSL yapılandırma dosyası genellikle /etc/httpd/conf.d/ssl.conf konumunda bulunur. Bu dosyayı bir metin düzenleyici ile açın (örneğin vi veya nano):

sudo vi /etc/httpd/conf.d/ssl.conf

Bu dosyanın içinde, VirtualHost bloğunu bulmanız gerekmektedir (genellikle şeklinde başlar). Bu bloğu aşağıdaki gibi güncelleyin veya yeni bir blok oluşturun:


    # Sunucu Adı ve Takma Adları
    ServerName alanadiniz.com
    ServerAlias www.alanadiniz.com

    # Web sitenizin kök dizini
    DocumentRoot /var/www/html

    # SSL Motorunu etkinleştir
    SSLEngine on

    # SSL Sertifika Dosyası
    # Kendinden imzalı sertifika için:
    SSLCertificateFile /etc/pki/tls/certs/alanadiniz.crt
    # Let's Encrypt sertifikası için:
    # SSLCertificateFile /etc/letsencrypt/live/alanadiniz.com/fullchain.pem

    # SSL Özel Anahtar Dosyası
    # Kendinden imzalı sertifika için:
    SSLCertificateKeyFile /etc/pki/tls/private/alanadiniz.key
    # Let's Encrypt sertifikası için:
    # SSLCertificateKeyFile /etc/letsencrypt/live/alanadiniz.com/privkey.pem

    # Sertifika Zincir Dosyası (Let's Encrypt için fullchain.pem içinde yer alır)
    # Eğer CA'dan ayrı bir zincir dosyası aldıysanız:
    # SSLCertificateChainFile /etc/pki/tls/certs/ca-bundle.crt

    # SSL Protokolleri ve Şifreleme Süitleri (Güvenlik için önerilen ayarlar)
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLHonorCipherOrder on
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
    Header always set X-Frame-Options DENY
    Header always set X-Content-Type-Options nosniff

    # Dizin ayarları
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

    # Hata ve Erişim Günlükleri
    ErrorLog /var/log/httpd/ssl_error_log
    CustomLog /var/log/httpd/ssl_access_log combined

Yukarıdaki örnekte alanadiniz.com yerine kendi alan adınızı, /var/www/html yerine ise web sitenizin gerçek kök dizinini girmelisiniz. Sertifika ve anahtar dosyalarının yollarını, hangi yöntemi kullandığınıza (kendinden imzalı veya Let’s Encrypt) göre doğru şekilde ayarladığınızdan emin olun.

HTTP’den HTTPS’e Yönlendirme (Önerilen)

Kullanıcıların sitenize her zaman güvenli HTTPS bağlantısı üzerinden erişmesini sağlamak için, HTTP (port 80) üzerinden gelen tüm istekleri HTTPS’e (port 443) yönlendirmeniz şiddetle tavsiye edilir. Bu, /etc/httpd/conf/httpd.conf dosyasında veya ayrı bir sanal ana bilgisayar dosyasında yapılandırılabilir:


    ServerName alanadiniz.com
    ServerAlias www.alanadiniz.com
    Redirect permanent / https://alanadiniz.com/

Bu yapılandırma, port 80 üzerinden gelen tüm istekleri kalıcı olarak HTTPS versiyonuna yönlendirecektir.

Apache Yapılandırmasını Test Etme

Yapılandırma dosyalarında herhangi bir hata olup olmadığını kontrol etmek için Apache’nin yapılandırma test aracını kullanın:

sudo apachectl configtest

Eğer çıktı Syntax OK ise, yapılandırmanızda bir sözdizimi hatası yok demektir.

Apache’yi Yeniden Başlatma

Yapılandırma değişikliklerinin etkili olması için Apache hizmetini yeniden başlatın:

sudo systemctl restart httpd

Adım 6: SSL Kurulumunu Test Etme

Apache yeniden başlatıldıktan sonra, SSL kurulumunuzu test etme zamanı gelmiştir.

Tarayıcı Testi

Web tarayıcınızı açın ve https://alanadiniz.com adresine gidin.
* Eğer her şey doğruysa, tarayıcınızın adres çubuğunda bir kilit simgesi veya “Güvenli” ibaresi görmelisiniz.
* Kendinden imzalı bir sertifika kullanıyorsanız, tarayıcınız bir güvenlik uyarısı gösterecektir (“Bağlantınız gizli değil”, “NET::ERR_CERT_AUTHORITY_INVALID” vb.). Bu, beklenen bir davranıştır, çünkü tarayıcı kendinden imzalı sertifikalara güvenmez. Bu uyarıyı kabul ederek devam edebilirsiniz, ancak bu, üretim ortamında kabul edilemez bir durumdur.

SSL Labs Server Test

Sertifikanızın ve sunucu yapılandırmanızın kalitesini ve güvenliğini değerlendirmek için SSL Labs’ın ücretsiz çevrimiçi aracını kullanabilirsiniz: https://www.ssllabs.com/ssltest/
Alan adınızı girin ve testi başlatın. Test sonucunda “A” veya “A+” gibi yüksek bir not almak, iyi bir güvenlik yapılandırmasına sahip olduğunuzu gösterir. Bu test, sertifika zinciri, kullanılan protokoller ve şifreleme süitleri hakkında detaylı bilgi sağlar.

Sıkça Sorulan Sorular ve Sorun Giderme

“NET::ERR_CERT_AUTHORITY_INVALID” veya “Sertifika Güvenilir Değil” Hatası

* Kendinden İmzalı Sertifika: Eğer kendinden imzalı bir sertifika kullanıyorsanız, bu hata beklenen bir durumdur. Tarayıcılar, güvenilir bir CA tarafından imzalanmamış sertifikalara güvenmez.
* CA’dan Alınan Sertifika:
* Yanlış Common Name: Sertifikadaki Common Name (Ortak Ad) veya Subject Alternative Name (SAN) ile tarayıcının eriştiği alan adı eşleşmiyorsa bu hata oluşur. Sertifikanın doğru alan adları için verildiğinden emin olun.
* Sertifika Zinciri Eksik: CA’lar genellikle ana sertifika ile birlikte ara sertifikalar (intermediate certificates) da sağlar. Bu ara sertifikaların SSLCertificateChainFile veya SSLCertificateFile (Certbot’un fullchain.pem gibi) direktifi içinde doğru şekilde yapılandırıldığından emin olun.
* Sertifika Süresi Doldu: Sertifikanın geçerlilik süresinin dolmadığından emin olun.

Karma İçerik (Mixed Content) Uyarıları

HTTPS üzerinden yüklenen bir sayfada, HTTP üzerinden yüklenen kaynaklar (resimler, CSS dosyaları, JavaScript dosyaları vb.) varsa, tarayıcılar karma içerik uyarısı verir. Bu, sayfanın tamamen güvenli olmadığı anlamına gelir.
* Çözüm: Web sitenizdeki tüm kaynakların URL’lerini HTTPS’e güncelleyin. Bu, sitenizin veritabanındaki veya kodundaki URL’leri değiştirmeyi gerektirebilir. WordPress gibi CMS’lerde genellikle ayarlar panelinden bu düzenleme yapılabilir.

Sertifika Süresi Doldu

Let’s Encrypt sertifikaları 90 gün geçerlidir ve otomatik olarak yenilenmelidir.
* Çözüm: sudo certbot renew --dry-run komutu ile yenileme işleminin doğru çalıştığını kontrol edin. Eğer otomatik yenileme başarısız oluyorsa, cron işini veya systemd zamanlayıcısını kontrol edin. Manuel sertifikalar için, sertifikanın süresi dolmadan önce yenileme sürecini başlatmanız gerekmektedir.

Apache Yeniden Başlatılamıyor

* Yapılandırma Hatası: sudo apachectl configtest komutunu kullanarak Apache yapılandırma dosyalarında sözdizimi hatası olup olmadığını kontrol edin.
* Hata Günlükleri: Apache’nin hata günlüklerini (/var/log/httpd/error_log ve /var/log/httpd/ssl_error_log) inceleyerek sorunun kaynağını belirleyin.
* Port Çakışması: Başka bir servisin 80 veya 443 portlarını kullanıp kullanmadığını kontrol edin.
* Güvenlik Duvarı: Port 443’ün güvenlik duvarı tarafından açık olduğundan emin olun (sudo firewall-cmd --list-all).

SELinux Engeli

CentOS’ta SELinux (Security-Enhanced Linux) bazen Apache’nin sertifika dosyalarına erişimini engelleyebilir.
* Çözüm: Sertifika ve anahtar dosyalarının doğru SELinux bağlamına sahip olduğundan emin olun:

sudo semanage fcontext -a -t httpd_cert_t "/etc/pki/tls/certs/alanadiniz.crt"
    sudo semanage fcontext -a -t httpd_cert_t "/etc/pki/tls/private/alanadiniz.key"
    sudo restorecon -v "/etc/pki/tls/certs/alanadiniz.crt"
    sudo restorecon -v "/etc/pki/tls/private/alanadiniz.key"

Eğer Let’s Encrypt sertifikaları kullanıyorsanız, Certbot genellikle bu bağlamları doğru şekilde ayarlar. Eğer sorun devam ederse, geçici olarak SELinux’u kapatıp (sudo setenforce 0) Apache’yi yeniden başlatarak test edebilirsiniz. Ancak bu kalıcı bir çözüm değildir ve SELinux’u tekrar etkinleştirmelisiniz (sudo setenforce 1) ve doğru bağlamları ayarlamalısınız.

Sonuç

Bu kapsamlı rehberde, CentOS 7 işletim sistemi üzerinde Apache web sunucusu için bir SSL sertifikasının nasıl oluşturulacağını ve yapılandırılacağını adım adım öğrendik. İster hızlı bir test için kendinden imzalı bir sertifika, ister üretim ortamı için Let’s Encrypt gibi güvenilir bir CA’dan ücretsiz bir sertifika kullanın, artık web sitenizin güvenliğini sağlamak için gerekli bilgi ve araçlara sahipsiniz.

SSL/TLS’in uygulanması, sadece verilerin şifrelenmesini sağlamakla kalmaz, aynı zamanda kullanıcılarınıza web sitenizin güvenilir olduğu mesajını vererek marka imajınızı güçlendirir. Ayrıca, Google gibi arama motorlarının HTTPS kullanan sitelere SEO sıralamasında öncelik vermesi, bu uygulamanın ticari açıdan da önemini artırmaktadır.

Unutmayın ki SSL sertifikaları belirli bir süre geçerlidir ve düzenli olarak yenilenmeleri gerekir. Özellikle Let’s Encrypt sertifikaları 90 günlük geçerlilik süresiyle otomatik yenileme mekanizmalarını doğru bir şekilde yapılandırmak, sitenizin sürekli güvenliğini sağlamak için kritik öneme sahiptir. Güvenli bir web deneyimi için bu adımları takip etmek ve olası sorun giderme yöntemlerini bilmek, web yöneticileri için vazgeçilmez bir beceridir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.