Ana içeriğe geç

CentOS 7 Apache SSL Sertifikası Oluşturma (Self-Signed)

Bu rehberde CentOS 7 üzerinde çalışan Apache web sunucusu için
kendinden imzalı (self-signed) SSL/TLS sertifikası oluşturacağız.

Amaç, sunucu ile istemci arasındaki trafiği HTTPS üzerinden şifrelemektir.
Bu yöntem genellikle test ortamları, intranet sistemleri veya geliştirme sunucuları için kullanılır.


Bu Rehberde Ne Öğreneceksiniz?

  • Apache için SSL desteğini etkinleştirme
  • OpenSSL ile sertifika ve özel anahtar oluşturma
  • Apache VirtualHost üzerinden HTTPS yapılandırma
  • HTTP → HTTPS yönlendirmesi
  • HTTPS bağlantısını doğrulama

Önemli Not

Kendinden imzalı sertifikalar tarayıcılar tarafından güvenilir otorite tarafından imzalanmadığı için uyarı verir.

Genel kullanıma açık web siteleri için Let's Encrypt SSL sertifikası kullanılması önerilir.


Ön Gereksinimler

  • CentOS 7 sunucu
  • Sudo yetkisine sahip kullanıcı
  • Apache HTTP Server kurulu

Apache SSL Modülünü Kurma

Apache'nin HTTPS trafiğini işleyebilmesi için mod_ssl modülü gereklidir.

sudo yum install mod_ssl

Bu komut SSL modülünü kurar ve Apache için etkinleştirir.

Apache servisini yeniden başlatın:

sudo systemctl restart httpd

SSL Sertifikası Oluşturma

2.1 Özel Anahtar Dizini Oluşturma

Özel anahtarların güvenliği kritik öneme sahiptir.

sudo mkdir /etc/ssl/private
sudo chmod 700 /etc/ssl/private

Bu dizine yalnızca root kullanıcısı erişebilir.

2.2 Sertifika ve Anahtar Üretme

OpenSSL kullanarak sertifika ve anahtar oluşturabilirsiniz.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crt

Bu komut:

2048 bit RSA anahtar üretir 1 yıl geçerli sertifika oluşturur Özel anahtarı /etc/ssl/private dizinine kaydeder

Common Name alanına alan adınızı veya sunucu IP adresini girin.

2.3 Diffie-Hellman Parametresi Oluşturma

Daha güvenli anahtar değişimi için önerilir.

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Bu işlem birkaç dakika sürebilir.

Apache HTTPS VirtualHost Yapılandırması

Yeni bir Apache yapılandırma dosyası oluşturun.

sudo nano /etc/httpd/conf.d/rabisu.cloud.conf

Örnek HTTPS VirtualHost yapılandırması:

<VirtualHost *:443>
ServerName rabisu.cloud
DocumentRoot /var/www/html

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>

Güvenli SSL Ayarları (Önerilen)

VirtualHost bloğunun içine aşağıdaki güvenlik ayarlarını ekleyebilirsiniz.

SSLProtocol -all +TLSv1.2
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
SSLHonorCipherOrder On

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"

SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

HTTP → HTTPS Yönlendirme (Opsiyonel)

HTTP trafiğini otomatik olarak HTTPS'e yönlendirmek için yeni bir yapılandırma dosyası oluşturun.

sudo nano /etc/httpd/conf.d/http-redirect.conf
<VirtualHost *:80>
ServerName rabisu.cloud
Redirect "/" "https://rabisu.cloud/"
</VirtualHost>

Apache Yapılandırmasını Uygulama

Önce yapılandırmayı kontrol edin:

sudo apachectl configtest

Eğer Syntax OK çıktısı görüyorsanız yapılandırma doğrudur.

Apache servisini yeniden başlatın:

sudo systemctl restart httpd

Güvenlik Duvarı Ayarları

HTTP ve HTTPS erişimini açın:

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

HTTPS Bağlantısını Test Etme

Tarayıcıdan aşağıdaki adresi açın:

https://rabisu.cloud

Tarayıcı bir güvenlik uyarısı gösterebilir. Bu durum self-signed sertifikalar için normaldir.

Sıkça Sorulan Sorular (SSS)

  1. Bu sertifika güvenli mi?

Veri trafiğini şifreler ancak sertifika otoritesi tarafından doğrulanmaz.

  1. Production ortamında kullanılabilir mi?

Hayır. Production ortamı için Let's Encrypt veya ticari SSL sertifikaları önerilir.

  1. Sertifika süresi dolunca ne olur?

Yeni bir self-signed sertifika oluşturmanız gerekir.

  1. HTTP → HTTPS yönlendirmesi gerekli mi?

Güvenlik açısından önerilir.

Sonuç

CentOS 7 üzerinde Apache için HTTPS yapılandırması tamamlandı. Sunucu ile istemci arasındaki veri trafiği artık şifreli olarak iletilmektedir.

Gerçek projelerde Let's Encrypt SSL kullanılması önerilir. Bu altyapıyı Rabisu Bulut sunucularında dakikalar içinde kurabilirsiniz.