Doküman

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.

zerossl free plan

Daha sonra Yeni Sertifika butonuna tıklayın.

ZeroSSL New Certificate

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

zerossl enter domain name

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

zerossl 90 day certificate

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

zerossl auto-genereate CSR

Son olarak ücretsiz planı seçin.

zerossl upsell

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.

zerossl domain verification

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

zerossl download certificate

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.