Menu

/home/burak

günlük şeysi…

HTTPS Yönlendirme

GitHub Education paketi ile ilgili bir nevi başlangıç sayılabilecek yazımı daha önce yazmıştım. Paketi alır almaz DigitalOcean kodunu oluşturup DigitalOcean ile aramızdaki borç alacak hesabını -bayağı birikmiş- sıfırladım. Pakette başka neler var diye bakarken Namecheap‘ten bir yıllık .me alan adı ile yine bir yıllık SSL sertifikası olduğunu gördüm. Zaten bir alan adına sahip olduğumdan bir yıllık SSL sertifikası daha çok ilgimi çekti. Hemen aktifleştirip sunucuma gerekli ayarlamaları yaptım ve şu anda da görebileceğiniz üzere sizinle sunucum arasındaki bütün trafik şifreli bir şekilde gerçekleşiyor.

SSL sertifikasını düzgün bir şekilde çalıştırdıktan sonra http protokolü üzerinden günlüğe bağlanan kullanıcıların https protokolüne yönlenmesini ayarlamak gerekiyordu yoksa sertifikanın bir espirisi -havası- kalmıyor haliyle. Apache kullanarak bunun yapmanın iki yolu var:

  1. .htaccess dosyasına rewrite kuralı yazmak -ki google’layınca çoğunlukla bahsedilen karmaşık yöntem-
  2. yine .htaccess dosyasına veya sanal sunucu dosyasına Apache’nin Redirect özelliğini kullanarak kural yazmak.

Daha basit -tek satır, temiz ve anlaşılabilir komut- ve daha önerilen bir yöntem olduğu için ben ikinci yöntemi kullanıyorum.

Sunucunuzda sadece sizin web siteniz barınıyorsa veya herhangi bir sanal sunucu ayarlaması yapmadıysanız bahsedeceğim değişiklikleri varsayılan yapılandırma dosyasında -/etc/apache2/sites-available/000-default.conf (eski ubuntu sürümlerinde default.conf isimli dosyadır.)- yapmalısınız. Eğer siteniz için bir sanal sunucu ayarlaması yaptıysanız da -örnek vermek gerekirse ben bu site için varsayılan yapılandırma dosyası yerine ayrıca bir yapılandırma dosyası (burakuzun.com.tr.conf) kullanıyorum- bu değişiklikleri kendi yapılandırma dosyanızda yapmalısınız.

Apache normal bağlantı ayarlamalarını ayrı yapılandırma dosyasında -80 portunu dinleyen 000-default.conf dosyası-, SSL bağlantı ayarlamalarını ayrı yapılandırma dosyalasında -443 portunu dinleyen default-ssl.conf dosyası- tutuyor.

 Aslında ikisini tek bir dosyada ayarlayıp daha pratik bir şekilde tek yerden her iki bağlantı protokolüyle ilgili ayarlamaları yapabilirsiniz ki biz birazdan öyle yapacağız.

Basit olarak yapmak istediğimiz, http protokolüne -80 portu oluyor- gelen istekleri, https protokolüne -443 portu oluyor- yönlendirmek. İlk olarak sitenizi 443 portundan çalışacak şekilde ayarlamalısınız. Gerekli ayarlamaları tamamlayıp test ettikten sonra yapılandırma dosyanızdaki <VirtualHost *:443> satırının üstüne eklemeniz gereken kodlar ve açıklamaları aşağıda görebilirsiniz.

Tek yapılandırma dosyasını kullanarak 80 portundan web sitemizi çalıştırıyoruz. Daha sonra Redirect permanent / https://burakuzun.com.tr/ komutu ile gelen bütün bağlantıları https://burakuzun.com.tr adresine yönlendirdik.

Redirect komutu ile ilgili detaylı bilgiyi ve permanent komutunun yerine yazabileceğiniz alternatif komutları görmek için http://httpd.apache.org/docs/trunk/mod/mod_alias.html#redirect adresini incelebilirsiniz.