🔐 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 test ortamları ve kapalı sistemler için uygundur.
📌 Bu Rehberde Ne Öğreneceksiniz?
- Apache için SSL desteğini etkinleştirme
- OpenSSL ile sertifika ve özel anahtar üretme
- Apache VirtualHost üzerinden HTTPS yapılandırma
- HTTP → HTTPS yönlendirme
- HTTPS bağlantısını doğrulama
⚠️ Önemli Not
Kendinden imzalı sertifikalar tarayıcı uyarısı gösterir.
Genel kullanıma açık projeler için Let’s Encrypt önerilir.
⚙️ Ön Gereksinimler
- CentOS 7 sunucu
- Sudo yetkisine sahip non-root kullanıcı
- Apache HTTP Server kurulu
1️⃣ Apache SSL Modülünü Kurma
Apache'nin HTTPS trafiği işleyebilmesi için mod_ssl gereklidir.
sudo yum install mod_ssl
- Bu komut SSL desteğini kurar ve otomatik olarak etkinleştirir.
1. Apache’yi yeniden başlatın:
sudo systemctl restart httpd
2️⃣ SSL Sertifikası Oluşturma
2.1 Özel Anahtar Dizini Oluşturma
- Özel anahtarların güvenliği kritik önemdedir.
sudo mkdir /etc/ssl/private
sudo chmod 700 /etc/ssl/private
- Bu dizine sadece root erişebilir.
2.2 Sertifika ve Anahtar Üretme
- OpenSSL ile tek komutla sertifika oluşturacağız.
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 1 yıl geçerli RSA 2048-bit sertifika üretir.
-Common Name alanına alan adını veya sunucu IP’sini gir.
2.3 Diffie-Hellman Parametresi Oluşturma
- Güçlü anahtar anlaşması için önerilir.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
- Bu işlem birkaç dakika sürebilir.
3️⃣ Apache HTTPS VirtualHost Yapılandırması
1. Yeni yapılandırma dosyası oluşturun:
sudo nano /etc/httpd/conf.d/rabisu.cloud.conf
- Örnek HTTPS VirtualHost:
<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>
3. Güvenli SSL Ayarları (Önerilen)
1. VirtualHost altına ekleyin:
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)"
4️⃣ HTTP → HTTPS Yönlendirme (Opsiyonel)
1. HTTP trafiğini otomatik HTTPS’e yönlendirmek için:
sudo nano /etc/httpd/conf.d/http-redirect.conf
<VirtualHost *:80>
ServerName rabisu.cloud
Redirect "/" "https://rabisu.cloud/"
</VirtualHost>
5️⃣ Apache Yapılandırmasını Uygulama
1. Yapılandırmayı test edin:
sudo apachectl configtest
- Syntax OK görmelisiniz.
2. Apache’yi yeniden başlatın:
sudo systemctl restart httpd
6️⃣ Güvenlik Duvarı Ayarları
1. 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
7️⃣ HTTPS Bağlantısını Test Etme
1. Tarayıcıdan erişin:
https://rabisu.cloud
Tarayıcı uyarısı normaldir.
Bağlantı şifreli çalışır.
❓ Sıkça Sorulan Sorular (SSS)
1. Bu sertifika güvenli mi? Şifreleme sağlar, kimlik doğrulamaz.
2. Üretimde kullanılabilir mi? Hayır. Let’s Encrypt önerilir.
3. Sertifika süresi dolunca ne olur? Yeniden oluşturmak gerekir.
4. HTTP zorunlu yönlendirilmeli mi? Güvenlik için önerilir.
✅ Sonuç
CentOS 7 üzerinde Apache için HTTPS yapılandırması tamamlandı. Artık veri trafiği şifreli olarak iletilir.
🚀 Gerçek projelerde Let’s Encrypt kullanman önerilir. Bu altyapıyı Rabisu Bulut üzerinde dakikalar içinde kurabilirsin.