Ana içeriğe geç

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/ssl dizinine 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:

https://tr1.rabisu.cloud

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.