Apache Self-Signed SSL Sertifikası Oluşturma
Bu rehberde Ubuntu 22.04 üzerinde çalışan bir Apache web sunucusunda kendinden imzalı (self-signed) SSL/TLS sertifikası oluşturmayı öğreneceksiniz. Kurulum tamamlandığında HTTPS bağlantısı aktif olacak ve HTTP trafiği otomatik olarak HTTPS'e yönlendirilecektir.
Self-signed sertifikalar özellikle test ortamları, geliştirme sunucuları ve kapalı ağ sistemleri için kullanılır.
Teknik Özet
Konu: Apache üzerinde Self-Signed SSL kurulumu
Amaç:
- Sunucu ve istemci arasındaki trafiği şifrelemek
- Test ortamlarında HTTPS kullanmak
- Apache üzerinde SSL yapılandırmasını öğrenmek
Bu rehberde aşağıdaki işlemleri gerçekleştireceğiz:
- Apache SSL modülünü etkinleştirme
- OpenSSL ile SSL sertifikası üretme
- Apache HTTPS VirtualHost yapılandırması
- HTTP → HTTPS yönlendirmesi
Not: Kendinden imzalı sertifikalar üretim ortamları için önerilmez. Üretimde Let’s Encrypt veya ticari SSL sertifikaları kullanılmalıdır.
Ön Gereksinimler
Kuruluma başlamadan önce aşağıdaki gereksinimlerin sağlanmış olması gerekir:
- Ubuntu 22.04 sunucu
- sudo yetkisine sahip kullanıcı
- Apache web sunucusu kurulmuş olmalı
- UFW güvenlik duvarı aktif olmalı
Apache Kurulumu
Öncelikle paket listesini güncelleyin:
sudo apt update
Apache web sunucusunu kurun:
sudo apt install apache2
Güvenlik duvarında HTTP ve HTTPS portlarını açın:
sudo ufw allow "Apache Full"
Bu işlem 80 ve 443 portlarını aktif hale getirir.
1. Apache mod_ssl Modülünü Etkinleştirme
Apache’nin SSL desteğini etkinleştirmek için aşağıdaki komutu çalıştırın:
sudo a2enmod ssl
Ardından Apache servisini yeniden başlatın:
sudo systemctl restart apache2
2. Self-Signed SSL Sertifikası Oluşturma
OpenSSL kullanarak özel anahtar ve sertifika oluşturun:
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 oluşturur 365 gün geçerli sertifika üretir Sertifika ve anahtar dosyalarını
/etc/ssldizinine kaydeder Önemli Alan:Common Name
Sertifika oluştururken sizden bazı bilgiler istenir.
Common Name alanına sunucunun alan adını veya IP adresini yazmalısınız.
Örnek:
Common Name: tr1.rabisu.cloud
Tarayıcıda kullanılan adres ile aynı olması gerekir.
3. Apache HTTPS VirtualHost Yapılandırması
Yeni bir HTTPS site yapılandırması oluşturun:
sudo nano /etc/apache2/sites-available/tr1-rabisu-cloud.conf
Aşağıdaki yapılandırmayı ekleyin:
<VirtualHost *:443>
ServerName tr1.rabisu.cloud
DocumentRoot /var/www/tr1-rabisu-cloud
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
Bu yapı Apache’ye SSL sertifikasını tanıtır.
Test Dizini Oluşturma
Test için web dizini oluşturun:
sudo mkdir /var/www/tr1-rabisu-cloud
Basit bir test sayfası oluşturun:
sudo nano /var/www/tr1-rabisu-cloud/index.html
<h1>SSL Çalışıyor!</h1>
Siteyi Aktif Etme
Siteyi etkinleştirin:
sudo a2ensite tr1-rabisu-cloud.conf
Apache yapılandırmasını test edin:
sudo apache2ctl configtest
Apache’yi yeniden yükleyin:
sudo systemctl reload apache2
Tarayıcıdan Test Etme
Tarayıcıda aşağıdaki adresi açın:
Tarayıcı güvenlik uyarısı gösterebilir. Bu durum self-signed sertifikalar için normaldir.
4. HTTP’den HTTPS’e Yönlendirme
HTTP isteklerini otomatik olarak HTTPS’e yönlendirebilirsiniz.
VirtualHost dosyasını düzenleyin:
sudo nano /etc/apache2/sites-available/tr1-rabisu-cloud.conf
Aşağıdaki yapılandırmayı ekleyin:
<VirtualHost *:80>
ServerName tr1.rabisu.cloud
Redirect / https://tr1.rabisu.cloud/
</VirtualHost>
Yapılandırmayı kontrol edin:
sudo apachectl configtest
Apache’yi yeniden yükleyin:
sudo systemctl reload apache2
Artık http:// istekleri otomatik olarak https:// adresine yönlenecektir.
Sıkça Sorulan Sorular
Self-Signed SSL sertifikası güvenli midir?
Veri trafiğini şifreler ancak sertifika otoritesi tarafından doğrulanmadığı için kimlik doğrulaması sağlamaz.
Tarayıcı neden güvenlik uyarısı verir?
Self-signed sertifikalar güvenilir bir sertifika otoritesi tarafından imzalanmadığı için tarayıcılar uyarı gösterir.
Self-signed sertifika üretimde kullanılabilir mi?
Hayır. Üretim ortamlarında Let’s Encrypt veya ticari SSL sertifikaları kullanılması önerilir.
Sertifikanın geçerlilik süresi nedir?
Bu rehberde oluşturulan sertifika 365 gün geçerlidir.
Sonuç
Bu rehberde Ubuntu 22.04 üzerinde Apache web sunucusunda self-signed SSL sertifikası oluşturmayı, HTTPS yapılandırmasını ve HTTP → HTTPS yönlendirmesini öğrendiniz.
Bu yöntem özellikle test ortamları ve geliştirme sunucuları için idealdir.
Apache HTTPS yapılandırmalarını Rabisu Bulut altyapısında güvenle test edebilirsiniz.