ana sayfa > Apache Web Server, Genel, Linux - Debian > Apache Sunucularda SSL Sertifika Kurulumu

Apache Sunucularda SSL Sertifika Kurulumu

Çarşamba, 26 Şub 2014 yorum ekle yorumlara git

Merhabalar, bu makalemizde Apache Web sunucusu için sertifika isteğinin nasıl yapıldığına ve SSL sertifikasının kurulum adımlarına değineceğiz.

SSL sertifikası oluşturma işlemi zor yada karmaşık gibi gözükse de aslında gayet basit bir işlemdir. Apache tarafında ise son derece kolay ve hızlı bir işlemdir.

Dilerseniz şimdi adım adım SSL sertifika isteğinin nasıl oluşturulacağına bakalım.

SSL için ben Linux tarafında Open SSL kullanacağım, bunun için öncelikle Open SSL’in sunucumuzda kurulu olması gerekmektedir. Eğer Open SSL kurulu değil ise aşağıdaki komut ile gerekli kurulum işlemini başlatalım.

aptitude install openssl

Open SSL kurulum işlemlerimiz bittikten sonra artık Apache tarafında yapılması lazım gelen işlemleri başlatabiliriz.

İlk işlem adımı olarak SSL sertifikalarımızın ve sertifika isteklerimizin oluşturulacağı bir klasör oluşturalım. Ben bu alanı /etc/apache2 dizinin altında ssl adıyla oluşturacağım.

İşlem için

mkdir /etc/apache2/ssl komutunu konsola verelim.

Bu komut /etc/apache2/ dizini altında ssl isimli yeni bir dizin oluşturmamızı sağlamaktadır.

cd /etc/apache2/ssl

komutu ile ilgili dizine geçiyor ve ardından aşağıdaki komutu çalıştırıyoruz.

openssl req -new -days 365 -nodes -keyout ssl.domain.com.key -out ssl.domain.com.csr -newkey rsa:2048

Komuttaki önemli parametrelerimiz şunlardır.

-days = Sertifaka için gün cinsinden bir geçerlilik süresi belirtir.

-keyout ssl.domain.com.key = SSL sertifika isteği için key oluşturur. Ssl-domain-name.com adını kendinize göre uyarlamayı unutmayınız. Bu isim sertifikayı ayırt edebilmek adına önemli olup adının herhangi bir şey olması çok önemli değildir.

-out ssl.domain.com.csr = SSL sertifika isteği için bir CSR çıktısı vermektedir. Bu dosya sertifika isteği yapabilmemiz adına önemli ve gereklidir.

rsa:2048 = Şifreleme için bit uzunluğunu belirtir. Önemli bir kriter olup bu değeri sertifikayı temin edeceğiz yerin kriterlerine göre belirlemeniz gerekmektedir.

Bu komut sonrasında aşağıda ekran çıktısı verilen bilgileri şu şekilde doldurmanız gerekmektedir.

apachessl2

 

  • Country Name (2 letter code) [AU]:TR (Ülkenizi belirten Plaka kodunu giriniz)
  • State or Province Name (full name) [Some-State]:CANKAYA (Bulunduğunuz şehrin ilçe bilgisini giriniz.)
  • Locality Name (eg, city) []:ANKARA (Ülkenize ait bulunduğunuz ilin adını giriniz)
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Organization Name (Firma yada Organizasyon adınızı giriniz)
  • Organizational Unit Name (eg, section) []:IT Department (Bu organizasyona ait ilgili Departman bilgisini giriniz)
  • Common Name (e.g. server FQDN or YOUR name) []:ssl.domain.com (SSL sertifikasını hangi alan adı için kullanacağınızı belirtiniz. Bu ad son derece önemlidir. Çünkü sertifikanız sadece burada belirttiğiniz alan adı için geçerli olacaktır.)
  • Email Address []: (E-mail adresinizi belirtiniz. Bu alanı boş bırakmanız önerilir bazı firmalar zaten buranın istek yapılır iken boş bırakılmasını ön şart koşmaktadır.)

Please enter the following ‘extra’ attributes

to be sent with your certificate request

  • A challenge password []: (SSL sertifikası için şifre belirtiniz. Bu alanı kesinlikle boş bırakın)
  • An optional company name []: (Ek firma adı belirtiniz. Bu alanıda kesinlikle boş bırakınız. Bir çok firma burada ki veriler doldurulmuş ise sertifika isteğinize cevap veremeyebilir)

Önemli Not 1 : Herhangi bir sorun yaşamamak adına sertifika isteğinde bulunulurken Email Address ve Extra Attributes i kesinlikle doldurmamanız önerilir. Zira bazı firmalar bu bilgilerin zaten girilmesini istememektedir. Özellikle A challenge password: alanını kesinlikle boş bırakın. Buraya bir şifre girmeniz durumunda Apache sunucu restart olduğunda SSL için şifre girilmediği sürece Start olmayacaktır.

Önemli Not 2 : Wildcard bir sertifikaya sahip iseniz sertifika isteği yapmak zorunda değilsiniz. Size verilen .key, .crt ve root sertifikalarını ilgili dizine kopyalayıp Virtual Host dosyasından yollarını belirtmeniz yeterli olacaktır.

Başarılı bir şekilde sertifika isteğini oluşturduktan sonra bu isteği sertifikayı temin edeceğimiz kuruluşa iletiyoruz ve işlem sonrasında bu kuruluş bize .crt uzantılı bir sertifika çıktısı veriyor.

Şimdiki adımda temin edilen bu sertifikayı Apache’ye nasıl yüklüyeceğimize değineceğiz.

İşlem için Apache’deki Virtual Host dosyamızı açalım ve şu satırları düzenleyelim.

nano /etc/apache2/sites-available/default

apachessl1

 

  • ServerName ssl.domain.com
  • SSLEngine On
  • SSLCertificateFile “/usr/local/apache2/ssl/ssl.domain.com.crt”
  • SSLCertificateKeyFile “/usr/local/apache2/ssl/ssl.domain.com.key”
  • DocumentRoot /usr/local/apache2/htdocs

ServerName : SSL için oluşturulan DNS adını yazıyoruz.

SSLEngine On : Server Name için SSL in kullanılacağını belirityoruz.

SSLCertificateFile : SSL sertifikamınızın pathini belirtiyoruz.

SSLCertificateKeyFile : SSL için Sertifka keyimizin parthini belirtiyoruz.

DocumentRoot Web sitemizin yayın yapacağı pathi belirtiyoruz.

 

İlgili işlemlerimiz bittikten sonra SSL modülünü aktif etmek için konsoldan şu komutu veriyoruz.

a2enmod ssl

Apache’yi restart etmeden önce ayarlarımızı kontrol ediyoruz. Bu işlem için apachectl configtest diyoruz.

Syntax OK

Çıktı olarak Syntax OK gördüğümüzde artık Apache’yi restart edip işlem adımlarının uygulanmasını başlatabiliriz.

http İsteğini https’e Force Etmek

Apache sunucunuzda http ye yani 80 i porta gelen istekleri SSL sayfanıza yani 443 üncü porta re-direct etmeniz gerekiyor ise şu adımları uygulamanız gerekmektedir.

İşlem için öncelikle Apache’deki rewirete modülünü aktif etmemiz gerekmektedir.

Modülü aktif etmek için a2enmod rewrite diyoruz.

Modülümüzü başarılı bir şekilde aktif ettikten sonra ilgili Virtual host dosyamıza gelip şu satırları ekliyoruz.

<VirtualHost *:80>

        RewriteEngine on

        ReWriteCond %{SERVER_PORT} !^443$

        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

</VirtualHost>

 

İşlem sonrasında /etc/init.d/apache2 restart diyerek Apache sunucumuzu yeniden başlatıyoruz.

İşlem sonrasında artık Apache sunucumuzun 80.portuna gelen istekler otomatik olarak 443. Portuna yönlendirilecektir.

 

Tekrardan görusmek uzere.

 

 

 

 

  1. Perşembe, 30 Eki 2014 zamanında 16:57 | #1

    Açıklamanız için teşekkür ederiz sayenizde kendi sitemizi ssl sertifikalı yapmış bulunmaktayız.

  2. Cuma, 04 Eyl 2015 zamanında 22:45 | #2

    cwp panel kurdum centos6 ya ama ssl sorununu 11 gündür çözemiyprum. çok yoruldum ve bunaldım.

  3. Cuma, 04 Eyl 2015 zamanında 23:16 | #3

    nano /etc/apache2/sites-available/default böyle bir dizin yok diyor

  4. Cumartesi, 05 Eyl 2015 zamanında 14:55 | #4

    Cevap mailiniz geldi döndüğünüz için çok teşekkür ediyorum. sorunum şu centos cwp panel yükledim ve ssl sertifikalarını yükledim. Ama hala güvenilmez olarak görüyor. kök sertifikayı yüklemem gerekiyormuş bir türlü başaramadım sitem sıralamasını kaybetti 🙁 11 gündür uğraşıyorum.

  1. şimdilik geri bağlantı yok