Ubuntu Sunucusuna Ücretsiz ZeroSSL Sertifikası Nasıl Kurulur

Bugün ücretsiz SSL sertifikası veren başka bir sertifika yetkilisini tanıtacağız: ZeroSSL.

ZeroSSL Özellikleri

  • 90 günlük sertifikalar ve 1 yıllık sertifikalar sunar.
  • çoklu etki alanı sertifikaları ve joker karakter sertifikaları.
  • ACME desteği.  Özel ACME Botu (ZeroSSL Bot), 90 günlük sertifikaları otomatik ve tamamen ücretsiz olarak almanıza ve yenilemenize olanak tanır.
  • Üçüncü taraf ACME istemcilerini destekler
  • Oran sınırı yok
  • SSL izleme
  • REST API
  • E-posta, CNAME veya dosya yükleme yoluyla alan adı doğrulaması

Dürüst olmak gerekirse bu özelliklerin birçoğu premium plan gerektiriyor.   Şimdi ZeroSSL sertifikasını Ubuntu sunucusuna nasıl kurabileceğinizi öğrenelim.

Adım 1: ZeroSSL Hesabı Oluşturun

ZeroSSL resmi web sitesine gidin ve Ücretsiz SSL Alın düğmesini tıklayın.

zeroSSL free certificate

Ücretsiz plan için kaydolun.

Daha sonra Yeni Sertifika butonuna tıklayın.

Alan adınızı girin ve Sonraki Adım butonuna tıklayın.

Daha sonra sertifika geçerlilik süresini seçin.  90 günlük sertifika ücretsizdir, bu yüzden onu seçtik.

Bundan sonra bir CSR (sertifika imzalama talebi) oluşturacaktır.

Son olarak ücretsiz planı seçin.

SSL sertifikası oluşturulduktan sonra alan adınızı doğrulamanız gerekir.  ZeroSSL, e-posta doğrulamasını, DNS (CNAME) doğrulamasını ve HTTP dosya yükleme doğrulamasını destekler.

Alan adı doğrulandıktan sonra sertifikayı indirebilirsiniz.

Adım 2: Ubuntu Sunucusuna ZeroSSL Sertifikasını yükleme

Sıkıştırılmış sertifika dosyasını sunucunuza yükleyin.  Daha sonra zip dosyasını açın.

unzip your-domain.com.zip

3 dosya olacak:

  • ca_bundle.crt
  • certificate.crt
  • private.key

İki .crt dosyasını tek bir dosyada birleştirmemiz gerekiyor.

cat certificate.crt ca_bundle.crt >> zerossl_certificate.crt

Bu dosyaları depolamak için bir dizin oluşturun.

sudo mkdir /etc/ssl/your-domain.com

Bunları bu dizine taşıyın.

sudo mv zerossl_certificate.crt private.key /etc/ssl/your-domain.com/

Dosya iznini yalnızca kök kullanıcının okuyabileceği şekilde değiştirin.

sudo chown root:root /etc/ssl/your-domain.com/*

sudo chmod 660 /etc/ssl/your-domain.com/*

Şimdi sertifikayı yükleyelim.

Apache Web Sunucusu

Öncelikle sanal ana bilgisayar dosyanızı düzenleyin.

sudo nano /etc/apache2/sites-available/your-domain.com.conf

</VirtualHost>’un üstüne aşağıdaki satırları ekleyin.

RewriteEngine on
RewriteCond %{SERVER_NAME} =your-domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

3 satır Apache’ye ziyaretçileri her zaman sitenizin HTTPS sürümüne yönlendirmesini söyler.  Dosyayı kaydedip kapatın.  Ardından sitenizin HTTPS sürümü için virtual host dosyası oluşturun.

sudo nano /etc/apache2/sites-available/your-domain.com-https.conf

Aşağıdaki satırları dosyaya ekleyin.

<IfModule mod_ssl.c>
<VirtualHost *:443>

   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/your-domain/
   ServerName your-domain.com

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined

   SSLCertificateFile /etc/ssl/your-domain.com/zerossl_certificate.crt
   SSLCertificateKeyFile /etc/ssl/your-domain.com/private.key
   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

</IfModule>

Dosyayı kaydedip kapatın.  Ardından sitenizin HTTPS sürümünü etkinleştirin.

sudo a2ensite your-domain.com-https.conf

Ve Apache’yi yeniden yükleyin.

sudo systemctl reload apache2

Şimdi tarayıcınızda sitenizi ziyaret ettiğinizde yeşil bir kilit göreceksiniz.

Nginx Web Server

Nginx sunucu blok dosyanızı açın.

sudo nano /etc/nginx/confi.d/your-domain.com.conf

Dosyayı aşağıdaki gibi düzenleyin.

server {
        listen 80;
        server_name your-domain.com;
        return 301 https:$server_name$request_uri;
}

server {
        listen 443 ssl http2;
        server_name your-domain.com;

        root /var/www/your-domain/;
        
        ssl_certificate /etc/ssl/your-domain.com/zerossl_certificate.crt;
        ssl_certificate_key /etc/ssl/your-domain.com/private.key;

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
       ssl_prefer_server_ciphers off;

       # HSTS (ngx_http_headers_module is required) (63072000 seconds)
       add_header Strict-Transport-Security "max-age=63072000" always;

       # OCSP stapling
       ssl_stapling on;
       ssl_stapling_verify on;

        ...
        Your custom directives goes here. 
        ...
}

Dosyayı kaydedip kapatın.  Ardından Nginx yapılandırmalarını test edin ve yeniden yükleyin.

sudo nginx -t

sudo systemctl reload nginx

 

Yazının orijinalini buradan okuyabilirsiniz.

 

 

 

 

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.