Ana içeriğe geç

Apache Kendinden İmzalı SSL Sertifikası Oluşturma (Ubuntu 22.04)

Bu rehberde Ubuntu 22.04 çalışan bir sunucu örneğinde Apache için
kendinden imzalı (self-signed) SSL/TLS sertifikası oluşturmayı öğreneceksiniz.
Kurulum sonunda HTTPS aktif olacak ve HTTP trafiği otomatik yönlenecek.


🧠 Teknik Özet

Ana konu: Apache için self-signed SSL/TLS kurulum
Amaç:

  • Sunucu–istemci trafiğini şifrelemek
  • Test ve kapalı ortamlarda HTTPS kullanmak

Adımlar:

  • mod_ssl etkinleştirme
  • OpenSSL ile sertifika üretme
  • Apache HTTPS yapılandırması
  • HTTP → HTTPS yönlendirme

⚠️ Not: Kendinden imzalı sertifikalar üretim ortamı için uygun değildir.


✅ Ön Gereksinimler

  • Ubuntu 22.04 sunucu
  • sudo yetkisine sahip kullanıcı
  • Apache kurulu olmalı
  • UFW güvenlik duvarı aktif olmalı

Apache kurulumu:

sudo apt update
  • Bu komut paket listesini günceller.

sudo apt install apache2
  • Bu komut Apache web sunucusunu kurar.

sudo ufw allow "Apache Full"
  • Bu komut 80 ve 443 portlarını açar.

1️⃣ mod_ssl Modülünü Etkinleştirme

1. Apache’nin SSL desteğini açıyoruz.


sudo a2enmod ssl
  • Bu komut SSL modülünü aktif eder.

sudo systemctl restart apache2
  • Bu komut Apache’yi yeniden başlatır.

2️⃣ Kendinden İmzalı SSL Sertifikası Oluşturma

  • OpenSSL ile özel anahtar ve sertifika üreteceğiz.

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 sertifika oluşturur.

Önemli Alan

1. Common Name alanına alan adınızı veya IP’yi yazın.

  • Tarayıcıda kullanılan adresle aynı olmalıdır.

Örnek:


Common Name: tr1.rabisu.cloud

3️⃣ Apache HTTPS Yapılandırması

  • Yeni bir VirtualHost oluşturuyoruz.

sudo nano /etc/apache2/sites-available/tr1-rabisu-cloud.conf

<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 sertifikayı tanıtır.

1. Test Dizini Oluşturma


sudo mkdir /var/www/tr1-rabisu-cloud

sudo nano /var/www/tr1-rabisu-cloud/index.html

<h1>SSL Çalışıyor!</h1>

2. Siteyi Aktif Etme


sudo a2ensite tr1-rabisu-cloud.conf

sudo apache2ctl configtest

sudo systemctl reload apache2

3. Tarayıcıdan erişin:


https://tr1.rabisu.cloud

  • ⚠️ Güvenlik uyarısı normaldir.

4️⃣ HTTP’den HTTPS’e Yönlendirme

1. HTTP trafiğini otomatik şifreli hale getiriyoruz.


sudo nano /etc/apache2/sites-available/tr1-rabisu-cloud.conf

<VirtualHost *:80>
ServerName tr1.rabisu.cloud
Redirect / https://tr1.rabisu.cloud/
</VirtualHost>

sudo apachectl configtest

sudo systemctl reload apache2
  • Artık http:// istekleri https:// adresine yönlenir.

❓ Sıkça Sorulan Sorular (SSS)

1. Self-signed sertifika güvenli mi? Şifreleme sağlar, kimlik doğrulamaz.

2. Tarayıcı neden uyarı verir? Sertifika güvenilir otorite tarafından imzalı değildir.

3. Üretimde kullanılabilir mi? Hayır, Let’s Encrypt önerilir.

4. Geçerlilik süresi nedir? Bu rehberde 365 gün olarak ayarlanır.


✅ Sonuç

Apache üzerinde test ve geliştirme ortamları için kendinden imzalı SSL/TLS yapılandırmasını tamamladınız.

🚀 Rabisu Bulut altyapısında HTTPS testlerinizi güvenle yapabilirsiniz.