Sitenizi Ücretsiz Olarak SSL'li hale getirelim

Step 1: Let's Encrypt Client'ın Sunucunuza Yüklenmesi

sudo apt-get update sudo apt-get install letsencrypt

Letsencrypt client artık sunucunuzda ;)

Step 2: SSL Sertifikasının Gösterilmesi

sudo nano /etc/nginx/sites-available/default

içine aşağıdaki blok eklenmelidir

 location ~ /.well-known {
            allow all;
    }

sudo nginx -t

Eğer herhangi bir hata almazsanız.

sudo systemctl restart nginx

Şimdi konfigürasyon yazılımını başlatabilirz

sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d siteniz.com -d www.siteniz.com

Sizden istenilen alanları doldurduktan sonra görmeniz gereken metin

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to sammy@digitalocean.com
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your
   cert will expire on 2016-03-15. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - If like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Şimdi dosyaların oluştunuğunu kontrol edelim:

sudo ls -l /etc/letsencrypt/live/siteniz

Diffie-Hellman Group Oluşturma

SSL sertifikanızın güvenlik yüzdesini de artırmak için Diffie-Hellman group oluşturuyoruz. 2048-bit group oluşturmak için çalıştırılacak kod:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Bu işlem 5-10 dk kadar sürebilir ve bittikten sonra şu path'te dosyayı görebilirsiniz. /etc/ssl/certs/dhparam.pem.

Step 3: TLS/SSL in Webserver'a Tanıtılması (Nginx)

sudo nano /etc/nginx/snippets/ssl-siteniz.com.conf

Bizim örneğimizde görüntü şu şekilde olmalı
/etc/letsencrypt/live/example.com/fullchain.pem; ssl\_certificate\_key /etc/letsencrypt/live/example.com/privkey.pem;

Şimdi sslparams dosyasını düzenliyoruz

sudo nano /etc/nginx/snippets/ssl-params.conf

Örnek

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

Şimdi server dosyamızı düzenliyoruz

sudo nano /etc/nginx/sites-available/default`


server {

    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
}

server {

    # SSL configuration

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-example.com.conf;
    include snippets/ssl-params.conf;