Ana içeriğe geç

🔐 Apache SSL Kurulumu: Ubuntu 18.04 Üzerinde Self-Signed Sertifika Oluşturma

Bu rehberde, Ubuntu 18.04 üzerinde Apache için self-signed SSL sertifikası oluşturmayı öğreneceksiniz.
Domaininiz olmasa bile trafiği şifreleyebilir, panel veya internal servislerinizi güvenli hale getirebilirsiniz.

SSL, sunucu ile istemci arasındaki tüm iletişimi şifreler ve ağ üzerinden veri çalınmasını engeller.
Self-signed sertifika, tarayıcı tarafından doğrulanmaz ama şifreleme tamamen çalışır.


🧠 Teknik Özet (Aşama 1)

Ana Konu: Apache için self-signed SSL sertifikası oluşturma ve HTTPS yapılandırma.

Çözdüğü Problem:

  • Domain olmayan sunucularda HTTPS ihtiyacı
  • Dahili panelleri hızlıca güvenli hale getirme
  • Veri şifreleme ve MITM riskini azaltma

Kullanıcı Adımları:

  1. OpenSSL ile sertifika + anahtar oluşturur.
  2. Apache SSL ayarlarını yapılandırır.
  3. HTTP → HTTPS yönlendirmesi ekler.
  4. Firewall'da HTTPS trafiğini açar.
  5. SSL yapılandırmasını test eder.

🚀 Bu Rehberde Ne Öğreneceksiniz?

  • OpenSSL ile self-signed SSL sertifikası oluşturmayı
  • Apache’de HTTPS için VirtualHost yapılandırmayı
  • HTTP isteklerini otomatik olarak HTTPS’e yönlendirmeyi
  • Güçlü şifreleme ayarlarını etkinleştirmeyi
  • Firewall üzerinden SSL trafiğini açmayı

1️ Sertifika ve Anahtar Dosyalarını Oluşturma

Aşağıdaki komut, hem özel anahtarı hem sertifikayı tek adımda oluşturur.

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ıllık RSA 2048 bit self-signed SSL sertifikası oluşturur.

Komut sırasında sorulan "Common Name" kısmına sunucu IP adresinizi yazın.


2️⃣ Apache SSL Ayar Dosyasını Yapılandırma

1. Apache için güçlü şifreleme kurallarını içeren bir ayar dosyası oluşturalım:


sudo nano /etc/apache2/conf-available/ssl-params.conf
  • İçine şu ayarları ekleyin:

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

Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLSessionTickets Off
  • ➡️ Bu dosya, modern ve güvenli şifreleme yapılandırması sağlar.

3️⃣ HTTPS VirtualHost Dosyasını Düzenleme

1. Apache’nin varsayılan SSL dosyasını aç:


sudo nano /etc/apache2/sites-available/default-ssl.conf
  • Aşağıdaki gibi düzenle:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName sunucu_IP

DocumentRoot /var/www/html

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
</IfModule>
  • ➡️ Bu yapılandırma HTTPS trafiğini aktif eder.

4️⃣ HTTP Trafiğini Otomatik Olarak HTTPS'e Yönlendirme (Önerilir)


sudo nano /etc/apache2/sites-available/000-default.conf
  • Şu satırı ekle:

Redirect "/" "https://sunucu_IP/"
  • ➡️ HTTP isteği geldiğinde tarayıcıyı otomatik olarak HTTPS’e yönlendirir.

5️⃣ Firewall Ayarlarını Güncelleme


sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'

-- ➡️ HTTP + HTTPS yerine sadece HTTPS izinli hale gelir.


6️⃣ Apache Modüllerini ve SSL Yapılandırmasını Etkinleştirme


sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params

1. Son olarak test et:


sudo apache2ctl configtest
  • Sonuç Syntax OK ise Apache’yi yeniden başlat:

sudo systemctl restart apache2

7️⃣ SSL Yapılandırmasını Test Etme

  • Tarayıcıya şunu yaz:

https://sunucu_IP

Kilit ikonu görünür ancak uyarı çıkar: "Bu sertifika güvenilir değil."

  • Bu normaldir çünkü sertifika self-signed.

  • ➡️ Şifreleme aktif, doğrulama pasif.


8️⃣ Kalıcı HTTPS Yönlendirmesi (301 Redirect)


sudo nano /etc/apache2/sites-available/000-default.conf

Yönlendirmeyi kalıcı yap:


Redirect permanent "/" "https://sunucu_IP/"

Apache’yi yeniden başlat:


sudo systemctl restart apache2

❓ Sıkça Sorulan Sorular (SSS)

1. Self-signed sertifika güvenli mi? Evet, bağlantı tamamen şifrelenir. Hayır, tarayıcı tarafından doğrulanmaz.

2. Bu sertifika SEO’yu etkiler mi? Evet, tarayıcı uyarısı kullanıcı deneyimini azaltır. Public site için Let’s Encrypt kullanmak daha iyidir.

3. IP adresiyle SSL olur mu? Evet, self-signed sertifikalar IP ile çalışır.

4. Sertifika kaç gün geçerli olmalı? Genelde 365 gün idealdir. -days 365 parametresi ile ayarlarsın.

5. Let’s Encrypt mi, self-signed mi? Public site = Let’s Encrypt

  • Panel / dahili servis = Self-signed

🎉 Sonuç

Artık Apache üzerinde güçlü TLS yapılandırması ile çalışan bir self-signed SSL kurulumu yaptınız. Tüm trafik şifreli, yapılandırma tamamen size ait.

Bu tip altyapı işlemlerini daha hızlı yapmak istersen, Rabisu Bulut üzerindeki VPS'lerde bu yapılandırmayı birkaç dakikada kurabilirsiniz.