CloudFlare ile Ücretsiz SSL/TLS Sertifikası Nasıl Alınır?

Yıllık SSL/TLS ücretleri aldı başını gitti, ücretsiz sertifikaları da 90 günde bir olmak üzere yenilemeniz gerekiyor kimi zaman insanlar unutuyor ve siteleri SSL/TLS hatası vermeye başlıyor. Bazı barındırma hizmeti sağlayıcılarını zaten gidip ziyaret etmiş olabilirsiniz ve fiyatları görünce hemen sayfayı kapattığınızı tahmin ediyorum. Alan adınız için ihtiyacınız olan tüm önemli güvenlik özelliklerine sahip ücretsiz SSL/TLS alabilirsiniz, bunu yapmak için birkaç yolunuz var

Ücretsiz SSL Sağlayıcıları

  1. Let’s Encrypt: Kâr amacı gütmeyen bir sertifika otoritesidir. Birçok hosting firması entegrasyon desteği sağlar ve ücretsiz SSL’yi sitenize entegre edebilirsiniz. Ancak tüm sağlayıcılar bu hizmeti sunmaz. Yine de bunu elle yapabilirsiniz. Yeni başlayan kullanıcılar için pek efektif olmaz.
  2. Cloudflare: CDN, güvenlik duvarı, Anycast DNS, Universal SSL ve çok daha fazlasını sağlar üstelik bunu ücretsiz yapar.
  3. ZeroSSL: kullanıcılarına ücretsiz SSL sertifikasını hızlı ve basit bir kullanıcı ara yüzü kullanarak, ACME entegrasyonlarını destekler, REST API desteği vardır. 90 günlük ve 1 yıllık sertifika geçerliliği arasında seçim yapma imkânı ile tek etki alanı, çok etki alanı veya wildcard sertifikaları destekler. Yeni başlayan kullanıcılar için pek efektif değildir.

Cloudflare ile Ücretsiz SSL Nasıl Alınır?

Ben bugün size bu rehberi hazırlarken Ücretsiz SSL için CloudFlare’yi kullanacağım. 15 yıllık ücretsiz SSL sertifikanızı sisteminize dahil edebileceksiniz.

CloudFlare birden fazla SSL şifreleme türünü destekler, bunları aşağıdaki görselden de görebilirsiniz. Merak etmeyin hepsini açıklayacağım istediğinizi seçebilirsiniz “Off (not secure)” olanı seçmeyin yeter.

ücretsiz ssl nasıl alınır, cloudflare ücretsiz ssl, ücretsiz 15 yıllık sslPin
  • Flexible: Tarayıcıdan Cloudflare’a giden tüm trafik 443 portu üzerinden SSL ile olacaktır, ancak CloudFlare kaynak sunucusuna HTTPS değil, yalnızca HTTP üzerinden bağlantı sağlayacak. Web siteniz hassas verilerle ilgilenmiyor ve kullanılmıyorsa bu yöntem sizin için yeterli, bu yöntemi etkinleştirmek için herhangi bir ekstra çabaya girmenize gerek yok.
  • Full: Uçtan uca şifreleme, tarayıcıdan ana sunucuya giden tüm trafik 443 portu üzerinden yapılır, geçerli veya geçersiz herhangi bir SSL sertifikası ile çalışabilir. Bu yöntemi kullanabilmek için kaynak sunucunuzun 443 portunun açık olması ve yapılandırılmış olması gerekmektedir.
  • Full (strict): Full ile aynıdır, ancak tek fark, CloudFlare ile kaynak sunucusu arasındaki bağlantının güvenilir bir “CA” veya “Cloudflare Origin CA” ile güvenli hale getirilmesi gerekliliğidir bu aşamayı ücretsiz ssl’ler ile de gerçekleştirebilirsiniz.

Bu anlatımda son yöntem olan Full (strict) kullanacağım, bağlantıların tamamını güvenli bir şekilde sağlayacağız. Cloudflare’ye giriş yapıyoruz, bunun sonucunda sol menüde yer alan “SSL/TLS” menüsünden “Origin Server” seçiyoruz ve “Create Certificate” diyoruz.

Ayarları aşağıdaki gibi yapabilirsiniz.

ücretsiz ssl nasıl alınır, ücretsiz cloudflare ssl sertifikası, 15 yıllık beleş sertifikaPin

Şimdi sertifika oluşturuldu, bunu kaynak sunucunuza yüklemeniz gerekiyor. Özel Anahtarınızın bir kopyasını güvenli bir yerde saklayın. Çünkü “Ok” tuşuna bastığınız anda bir daha anahtarlarınıza erişemeyeceksiniz.

Ücretsiz SSL ile NGINX Nasıl Yapılandırılır?

Cloudflare’nin size vermiş olduğu Private ve Origin sertifikaları PEM formatında alın, aşağıdaki örnekte görebileceğiniz gibi anahtarlarınızı hazır edecek.

cloudflare ssl bilgileri, cloudflare origin server certificate, cloudflare kaynak sslPin

Aşağıdaki gibi nginx ile okuyabileceğiniz bir dizine yukarıda size verilen sertifikaları dahil edin.

sudo nano /etc/nginx/certs/cloudflare-cert.pem
sudo nano /etc/nginx/certs/cloudflare-private.key

Bu sertifikaların içlerinde aşağıdakiler bulunacak, ters yaparsanız hata alırsınız. Bu sebeple dikkatli davranarak ayarlamaları yapın.

  • cloudflare-cert.pem -> Origin Certificate
  • cloudflare-private.key -> Private Key

Dipnot: Bazen dosya içerisine yapıştırırken fazladan bir satır eklenir. (Dosyanın altına ve/veya üstüne) Herhangi bir boşluk kalmadığından emin olun. Nginx yapılandırma testi (nginx -t) aksi takdirde başarısız olur.

Nginx yapılandırmamızda aşağıdaki gibi değişiklik yapıyoruz.

server {
    listen 443;
    listen [::]:443;
    ssl_certificate         /etc/nginx/certs/cloudflare-cert.pem;
    ssl_certificate_key     /etc/nginx/certs/cloudflare-private.key;
    server_name example.com www.example.com;
    location / {
        include proxy_params;
        proxy_pass http://localhost:3000/;
    }
}

Şimdi her şey istediğimiz gibi lakin burada bir sorun çıkacak, yukarıda size söylemiştim “Full (strict)” ayarlayacağız diye. Bu yapılandırma ile başarılı bir şekilde kullanmaya başlayabilirsiniz.

sudo nginx -t

Çıktımız aşağıdaki gibi olmalı

root@debian:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Authenticated Origin Pull Nasıl Yapılandırılır?

Kaynak sunucunuza gelen isteklerin bir TLS istemci sertifikası kullanarak Cloudflare’den geldiğini kriptografik olarak doğrulamanıza olanak tanır, bu özellik genellikle yanlış yapılandırılıyor.

Daha detaylı bilgi almak için https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/ adresini ziyaret edin.

Cloudflare TLS istemci sertifikasını Nginx sunucumuza eklememiz gerekiyor aşağıdaki işlemleri yapın.

-----BEGIN CERTIFICATE-----
MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
+4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
fVQ6VpyjEXdiIXWUq/o=
-----END CERTIFICATE-----

Bu sertifikayı indirmek için bağlantıdan faydalanabilirsiniz.

sudo nano /etc/nginx/certs/cloudflare-auth-ca.crt

Yukarıdaki yapılandırmamıza iki satır daha ekleyeceğiz ve bu “Authenticated origin pull” özelliğini doğru bir şekilde ayarlamış olacağız.

server {
    listen 443;
    listen [::]:443;
    ssl_certificate         /etc/nginx/certs/cloudflare-cert.pem;
    ssl_certificate_key     /etc/nginx/certs/cloudflare-private.key;
    ssl_verify_client on;
    ssl_client_certificate /etc/nginx/certs/cloudflare-auth-ca.crt;
    server_name example.com www.example.com;
    location / {
        include proxy_params;
        proxy_pass http://localhost:3000/;
    }
}

İşlemlerimiz sonunda tamamlandı sudo systemctl restart nginx ile NGINX’imizi yeniden başlatıyoruz. Ardından alan adınızı ziyaret edebilirsiniz. Haa unutmadan Cloudflare üzerinde “SSL/TLS” menüsü altında yer alan “Origin Server” içerisinde yer alan aşağıdaki özelliği aktif etmeyi unutmayın.

authentication origin pull ayarı, cloudflare origin doğrulama, cloudflare ücretsiz sslPin

CloudFlare ile ilgili işinize yarayabilecek diğer makalelere ulaşmak için tıklayınız.

Cloudflare Ücretsiz SSL Hataları Nasıl Giderilir?

Ücretsiz SSL kurulumunu tamamladıktan sonra, web sitenizde SSL kaynaklı hata mesajları görebilirsiniz bunun pek çok sebebi olabilir.

Yeniden Yönlendirme Hataları

SSL aktif edilen web sitesinde yönlendirmelerde sorun çıkarsa tarayıcı üzerinden siteye erişilmeye çalışıldığında aşağıdaki hatalar gözükmeye başlar.

  • The page isn’t redirecting properly
  • ERR_TOO_MANY_REDIRECTS

Bu hataların bir kaç sebebi vardır, ilki web sunucusunda kaynaklanan HTTP trafiklerinin HTTPS üzerine birden fazla kez yönlendirilmesi ile oluşmaktadır. Apache ve NGINX üzerinde rewrite kurallarınızı kontrol edin.

İkincisi ise eskiden kullandığınız bir Page Rule mevcut yapılandırma ile çakışıyordur. Bunu kontrol etmek için sol menüden “Page Rule” alanına gidin ve kurallarınızı kontrol edin.

Eğer SSL şifreleme kurallarında değişiklik yaparsanız web sunucunuzda bununla ilgili değişiklikleri de yapmanız gerekir. Mod olarak Flexible kullanılan bir yapıda Full geçilirse yönlendirme sorunları oluşabilir.

Sistem Uzmanı, Linux Hacısı, El-Kernel

“CloudFlare ile Ücretsiz SSL/TLS Sertifikası Nasıl Alınır?” üzerine 5 yorum

    • Merhaba

      Makalede gerekli güncelleştirmeyi gün içerisinde yapacağım, Windows ISS için eklemeyi gerçekleştireceğim.

Yorum yapın