• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Letsencrypt ile websitenizi ücretsiz SSL’e geçirin

  • Posted by Kodedu
  • Categories Genel
  • Date 27 Şubat 2017
Letsencrypt-ucretsiz-ssl

Letsencrypt dünya üzerindeki internet alan adı kullanıcılarının ücretsiz ve açık olarak SSL sertifikası sahibi olmalarını hedefleyen bir projedir. Projenin sponsorları arasında Mozilla, Cisco, Chrome, Akamai ve Facebook gibi internet ve teknoloji öncüleri yer almaktadır.

HTTP protokolü ile yapılan haberleşmede taşınan veri hat üzerinde çıplak akarken tehlikelere açıktır. HTTPS protokolünde ise taşınan veri şifrelenir ve veri güvenliği standart bir teminat altına alınmış olur.

HTTPS protokolü kullanımı bu kadar önemli olmasına karşın, önemi ölçüsünde kullanılmadığını görüyoruz. Bunun en önemli sebeplerinden biri de SSL sertifikaların belirli otoriteler aracılığıyla ücretli olarak sunulması diyebiliriz. Letsencrypt projesi ile herkes için SSL dönemi başladı diyebiliriz.

Ben kendi internet girişimim https://kodedu.com’u Letsencrypt ile sertifikalandırdım. Şimdi sizlerle nasıl yaptığımı paylaşmak istiyorum.

Letsencrypt birden çok platform ve HTTP server ile uyumlu olarak çalışıyor. Bu yazıda işletim sistemi olarak Linux tabanlı Centos 7, HTTP server olarak da Nginx kullanacağız. Benim tercihlerim bu yönde, siz de kendi sistem ve ortamınıza göre benzer yönde alan adlarınız için HTTPS geçişini sağlayabilirsiniz.

Adım 1 → Certbot yazılımının kurulması

Certbot, Letsencrypt projesinden faydalanmak için geliştirilen bir yazılımdır. Centos 7 için kurulum adımı aşağıdaki gibidir.

$ sudo yum install certbot

Adım 2 → Nginx’in yapılandırılması

İlk önce istediğimiz alan adlarını varsayılan HTTP 80 portundan dışarıya açmalı ve HTTPS karşılığına yönlendirmeliyiz. Ayrıca Certbot alan adınızın doğrulaması için sisteminizde .well-known isimli bir dizin oluşturacak ve alan adınızı doğrulamak için buraya birkaç dosya ekleyecektir.

server {

	listen 80;
	server_name kodedu.com www.kodedu.com; (1)

	location /.well-known { (2)
		alias /var/www/cert/.well-known;
	}

	location / {
	    return 302 https://$host$request_uri; (3)
	}

}
1 Tüm alan isimlerini boşluk ile ayırarak yazabiliriz.
2 Alan adının size ait olup olmadığını doğrulamak için Certbot .well-known isimli dizini kullanacaktır.
3 /.well-known dışındaki tüm HTTP taleplerini HTTPS adresine yönlendiriyoruz. Duruma göre 301 (Kalıcı) veya 302 (Geçici) yönlendirme durum kodlarından birini kullanabiliriz.

Adım 3 → Alan adı için sertifika oluşturulması

Bu adımın hemen öncesinde değiştirilen Nginx konfigürasyonun devreye girmesi için yeniden başlatmalıyız.

systemctl restart nginx

Aşağıdaki komut ile kodedu.com ve www.kodedu.com alan adları için sertifika oluşturuyoruz.

certbot certonly --webroot -w /var/www/cert -d kodedu.com -d www.kodedu.com

Ardından sertifikanın oluşturulduğunu görüyoruz. Sertifikanın kayıt edildiği dizini bir köşeye kopyalayabiliriz.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/kodedu.com/fullchain.pem. Your cert will
   expire on 2017-04-25. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

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

Adım 4 → SSL sertifikasının Nginx’e tanıtılması

Sertifika üretildiğine göre artık varsayılan HTTPS portu olan 443 için sunucu bloğunu tanımlayabiliriz. Bir önceki adımda bildirilen sertifika yolunu burada kullanmalıyız.

server {

    listen 443 ssl;
    server_name  kodedu.com www.kodedu.com;
    root         /var/www/kodedu.com;
    index index.html index.htm;

    ssl_certificate /etc/letsencrypt/live/kodedu.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/kodedu.com/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
		try_files $uri $uri/;
    }

}

Yine bu değişiklikten sonra Nginx servisini yeniden başlatmalıyız systemctl restart nginx

İşlem bu kadar.

 

Faydalı olması dileğiyle.

  • Share:
author avatar
Kodedu

Previous post

Java EE 8 için yeni plan yolda!
27 Şubat 2017

Next post

JWT (JSON Web Tokens) Nedir? Ne işe yarar?
9 Mart 2017

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    1 Comment

  1. Furkan BAŞARAN
    29 Mayıs 2017
    Cevapla

    Bu güzel makale için teşekkürler.

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Dağıtık uygulama çatılarının karşılaştırılması (Hadoop, GridGain, Hazelcast, DAC) Bölüm II
28Kas2011
Webiner videosu : Javascript ve Rest iletişimi
27Eyl2012
Java EE 7 – Concurrency Utilities
10Eyl2013
Dekoratör Tasarım Kalıbı
15May2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.