Ubuntu 18.04 Self-Signed Sertifika Rehberi
Bu rehberde Ubuntu 18.04 üzerinde çalışan Apache web sunucusu için self-signed SSL sertifikası oluşturmayı öğreneceksiniz.
Self-signed sertifikalar özellikle şu durumlarda kullanılır:
- Dahili paneller
- Test ortamları
- Domain olmayan sunucular
- Internal servisler
Self-signed sertifika tarayıcı tarafından doğrulanmaz, ancak bağlantı tamamen şifrelenir.
Self-Signed SSL Nedir?
Self-signed SSL sertifikası, sertifika otoritesi yerine sunucu tarafından oluşturulan bir sertifikadır.
Avantajları
- Hızlı kurulum
- Domain gerektirmez
- Dahili servisler için idealdir
Dezavantajları
- Tarayıcı güven uyarısı verir
- Public siteler için önerilmez
Bu Rehberde Ne Öğreneceksiniz
Bu rehberde aşağıdaki işlemleri gerçekleştireceksiniz:
- OpenSSL ile SSL sertifikası oluşturma
- Apache HTTPS VirtualHost yapılandırması
- HTTP → HTTPS yönlendirmesi
- Güçlü TLS ayarlarını aktif etme
- Firewall üzerinden HTTPS trafiğini açma
SSL Sertifikası ve Anahtar Oluşturma
Aşağıdaki komut hem özel anahtar hem de sertifika 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:
RSA 2048 bit anahtar
365 gün geçerli sertifika
oluşturur.
Komut sırasında sorulan Common Name kısmına sunucunun:
IP adresini veya Domain adını
yazabilirsiniz.
Apache SSL Güvenlik Ayarları
Apache için güçlü TLS ayarları oluşturalım.
sudo nano /etc/apache2/conf-available/ssl-params.conf
Dosya iç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 ayarlar:
Eski TLS sürümlerini kapatır Modern şifreleme algoritmalarını kullanır Güvenlik başlıklarını ekler.
HTTPS VirtualHost Yapılandırması
Apache'nin SSL VirtualHost dosyasını açın:
sudo nano /etc/apache2/sites-available/default-ssl.conf
Örnek yapılandırma:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@sunucum.com
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>
HTTP Trafiğini HTTPS’e Yönlendirme
HTTP isteklerini otomatik olarak HTTPS'e yönlendirmek için:
sudo nano /etc/apache2/sites-available/000-default.conf
VirtualHost içine ekleyin:
Redirect permanent "/" "https://sunucu_IP/"
Firewall Ayarlarını Güncelleme
HTTPS trafiğine izin verin:
sudo ufw allow "Apache Full"
Firewall durumunu kontrol edin:
sudo ufw status
Apache SSL Modüllerini Etkinleştirme
Gerekli Apache modüllerini aktif hale getirin:
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params
Yapılandırmayı Test Etme
Apache yapılandırmasını kontrol edin:
sudo apache2ctl configtest
Sonuç Syntax OK ise Apache'yi yeniden başlatın:
sudo systemctl restart apache2
HTTPS Bağlantısını Test Etme
Tarayıcıdan şu adresi açın:
https://SUNUCU_IP
Tarayıcı güvenlik uyarısı gösterebilir.
Bu normaldir çünkü sertifika self-signed.
Ancak bağlantı şifreli olarak çalışmaktadır.
Sıkça Sorulan Sorular
Self-signed sertifika güvenli mi?
Evet. Veri tamamen şifrelenir. Ancak sertifika doğrulaması olmadığı için tarayıcı uyarı verir.
Public web siteleri için uygun mu?
Hayır.
Public siteler için Let’s Encrypt önerilir.
IP adresi ile SSL çalışır mı?
Evet. Self-signed sertifikalar IP adresi ile kullanılabilir.
Sertifika süresi nasıl değiştirilir?
Komuttaki -days parametresi değiştirilir.
Örnek:
-days 730
Sonuç
Bu rehber ile:
- Apache üzerinde SSL yapılandırdınız.
- Self-signed sertifika oluşturmayı öğrendiniz.
- HTTP → HTTPS yönlendirmesi yaptınız.
- Güçlü TLS güvenlik ayarlarını etkinleştirdiniz.
Bu yapı özellikle test ortamları, internal paneller ve geliştirme sunucuları için idealdir.
Sunucu altyapınızı hızlı şekilde kurmak için Rabisu Bulut VPS sunucularını kullanabilirsiniz.