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)
- Bu sertifika güvenli mi?
Veri trafiğini şifreler ancak sertifika otoritesi tarafından doğrulanmaz.
- Production ortamında kullanılabilir mi?
Hayır. Production ortamı için Let's Encrypt veya ticari SSL sertifikaları önerilir.
- Sertifika süresi dolunca ne olur?
Yeni bir self-signed sertifika oluşturmanız gerekir.
- 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.