Takip et

Certbot Standalone Modu ile CentOS 7 Üzerinde Let’s Encrypt SSL Sertifikaları Nasıl Alınır?

Certbot Standalone Modu ile CentOS 7 Üzerinde Let’s Encrypt SSL Sertifikaları Nasıl Alınır? İnternet dünyasında güvenlik ve veri gizliliği,

Certbot Standalone Modu ile CentOS 7 Üzerinde Let’s Encrypt SSL Sertifikaları Nasıl Alınır?

İnternet dünyasında güvenlik ve veri gizliliği, her geçen gün daha da önem kazanan konuların başında gelmektedir. Web siteleri ve uygulamalar aracılığıyla iletilen bilgilerin korunması, kullanıcı güvenini sağlamanın ve yasal düzenlemelere uymamanın temel bir gerekliliğidir. Bu noktada SSL/TLS (Secure Sockets Layer/Transport Layer Security) sertifikaları devreye girer. SSL/TLS, istemci ile sunucu arasındaki iletişimi şifreleyerek üçüncü tarafların verilere erişmesini veya değiştirmesini engeller. Arama motorları (özellikle Google), HTTPS kullanan siteleri daha üst sıralarda listelerken, modern tarayıcılar HTTP ile hizmet veren siteleri “güvenli değil” olarak işaretleyerek kullanıcıları uyarır.

Geleneksel olarak, SSL sertifikaları ücretli olup, kurulum ve yönetim süreçleri karmaşık olabilmekteydi. Ancak Let’s Encrypt projesi, bu durumu kökten değiştirerek, herkese ücretsiz, otomatik ve açık kaynaklı SSL/TLS sertifikaları sunmaya başladı. Let’s Encrypt, sertifika alma ve yenileme süreçlerini otomatikleştiren Certbot adında bir istemci yazılımı ile birlikte çalışır. Certbot, farklı doğrulama yöntemleri sunar ve bu yöntemlerden biri de “Standalone” modudur.

Bu makalede, CentOS 7 işletim sistemi üzerinde Certbot’un Standalone modunu kullanarak Let’s Encrypt SSL sertifikalarını nasıl alacağınızı ayrıntılı bir şekilde ele alacağız. Standalone modu, özellikle sunucunuzda halihazırda bir web sunucusu (Apache, Nginx vb.) çalışmıyorsa veya mevcut web sunucusunu geçici olarak durdurup Certbot’un kendi dahili web sunucusunu kullanmak istediğiniz durumlarda oldukça kullanışlıdır. Bu yöntem, port 80’i kullanarak alan adı sahipliğini doğrular ve sertifikayı başarıyla almanızı sağlar.

SSL/TLS, Let’s Encrypt ve Certbot’a Yakından Bakış

SSL/TLS, internet üzerindeki veri iletişimini şifrelemek için kullanılan bir protokoldür. Bir web sitesi SSL/TLS sertifikasına sahip olduğunda, URL “http://” yerine “https://” ile başlar ve tarayıcı adres çubuğunda bir kilit simgesi görünür. Bu, kullanıcıların siteye gönderdiği veya siteden aldığı tüm verilerin (şifreler, kredi kartı bilgileri, kişisel veriler vb.) şifrelendiği anlamına gelir.

Let’s Encrypt, Internet Security Research Group (ISRG) tarafından işletilen ücretsiz, otomatik ve açık bir Sertifika Yetkilisidir (CA). Misyonu, interneti herkes için daha güvenli hale getirmektir. Let’s Encrypt, sertifikaları 90 gün boyunca geçerli olacak şekilde verir, ancak Certbot aracılığıyla otomatik yenilemeyi son derece kolaylaştırır.

Certbot, Let’s Encrypt sertifikalarını sunucularınıza kurmak için kullanılan bir yazılım istemcisidir. Alan adı sahipliğini doğrulamak için çeşitli yöntemler (challenge) kullanır ve bu doğrulama başarılı olduğunda sertifikaları indirir. Certbot’un başlıca doğrulama modları şunlardır:

* Apache/Nginx Pluginleri: Certbot, sunucunuzda çalışan Apache veya Nginx web sunucularını otomatik olarak yapılandırabilir ve sertifikaları kurabilir. Bu, en kolay ve önerilen yöntemdir.
* Webroot Modu: Mevcut bir web sunucusu çalışırken, Certbot’un doğrulama dosyalarını web sunucusunun belge kök dizinine (document root) yerleştirmesine izin verir. Web sunucusunun port 80 veya 443 üzerinden erişilebilir olması gerekir.
* Standalone Modu: Bu makalenin odak noktasıdır. Certbot, sertifika alma işlemi sırasında geçici olarak kendi dahili web sunucusunu port 80 (veya nadiren 443) üzerinde çalıştırır. Let’s Encrypt sunucuları bu geçici sunucuya bağlanarak alan adı sahipliğini doğrular. Bu mod, özellikle sunucuda başka bir web sunucusu çalışmıyorsa veya geçici olarak durdurulabiliyorsa idealdir.
* DNS-01 Modu: Alan adı sahipliğini doğrulamak için DNS kayıtlarını kullanır. Bu, özellikle port 80’in kapalı olduğu veya birden fazla sunucuya sahip olduğunuz durumlarda kullanışlıdır.

Standalone modu, basitliği ve harici bir web sunucusu bağımlılığının olmaması nedeniyle belirli senaryolarda tercih edilen bir yöntemdir. Ancak, sertifika alımı sırasında port 80’in boş olması gerektiğini unutmamak önemlidir.

Ön Gereksinimler

Certbot Standalone modunu kullanarak Let’s Encrypt sertifikalarını almadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olmanız gerekmektedir:

* CentOS 7 Sunucusu: Bu rehber, CentOS 7 işletim sistemi üzerinde root veya sudo yetkilerine sahip bir kullanıcı ile çalışmayı varsayar.
* Alan Adı: Sertifika almak istediğiniz bir alan adına (örneğin, ornekalanadiniz.com) sahip olmalısınız. Bu alan adının DNS kayıtları (A kaydı), sunucunuzun genel IP adresini işaret etmelidir. DNS değişikliklerinin internet genelinde yayılması (propagation) biraz zaman alabilir, bu nedenle alan adınızın doğru IP’ye yönlendirildiğinden emin olun.
* Açık Port 80: Certbot Standalone modu, alan adı sahipliğini doğrulamak için geçici olarak port 80 üzerinden bir web sunucusu çalıştırır. Bu nedenle, sunucunuzdaki güvenlik duvarında port 80’in açık olması ve bu portu kullanan başka bir servisin (Apache, Nginx vb.) çalışmıyor olması gerekmektedir. Eğer port 80’i kullanan bir servis varsa, sertifika alma işlemi sırasında geçici olarak durdurmanız gerekecektir.
* Temel Linux Komut Satırı Bilgisi: Komut satırı üzerinden işlem yapmaya aşina olmanız beklenir.

Certbot Kurulumu ve Sistem Güncellemesi

CentOS 7 üzerinde Certbot’u kurmadan önce sisteminizi güncel tutmak iyi bir uygulamadır ve Certbot’un EPEL deposunda bulunması nedeniyle EPEL deposunu etkinleştirmemiz gerekecektir.

Sistemi Güncelleme

İlk adım olarak, sunucunuzdaki tüm paketleri en son sürümlerine güncelleyelim:

sudo yum update -y

Bu komut, sisteminizdeki tüm kurulu paketleri güncelleyecektir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar.

EPEL Deposunu Etkinleştirme

Certbot, CentOS’un varsayılan depolarında bulunmaz. Genellikle Extra Packages for Enterprise Linux (EPEL) deposunda bulunur. EPEL deposunu kurmak için aşağıdaki komutu kullanın:

sudo yum install epel-release -y

Bu komut, EPEL deposunu sisteminize ekleyecektir. Kurulum tamamlandıktan sonra, paket listesini yeniden güncellemek iyi bir fikirdir:

sudo yum repolist

Bu komut, etkinleştirilen depoları ve içerdiği paket sayısını gösterecektir.

Certbot Kurulumu

EPEL deposu etkinleştirildikten sonra, Certbot’u kolayca kurabiliriz:

sudo yum install certbot -y

Kurulum tamamlandıktan sonra, Certbot’un doğru şekilde kurulduğunu ve sürümünü kontrol edebilirsiniz:

certbot --version

Bu komut, kurulu Certbot sürümünü gösterecektir. Örneğin, certbot 1.x.x.

Standalone Modu İçin Hazırlık

Certbot Standalone modu, doğrulama için port 80’i kullanır. Bu nedenle, sertifika alma işlemine başlamadan önce bu portun boş olduğundan ve güvenlik duvarı tarafından erişilebilir olduğundan emin olmalısınız.

Port 80’in Boş Olduğundan Emin Olma

Sunucunuzda Apache, Nginx veya başka bir web sunucusu çalışıyorsa, bunlar genellikle port 80’i kullanır. Certbot Standalone modunu kullanabilmek için bu servisleri geçici olarak durdurmanız gerekmektedir.

Port 80’i kullanan bir servisin olup olmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

sudo netstat -tulnp | grep :80

Eğer bu komut herhangi bir çıktı veriyorsa, port 80’i kullanan bir servis çalışıyor demektir. Örneğin, Apache (httpd) veya Nginx çalışıyorsa, aşağıdaki gibi bir çıktı görebilirsiniz:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12345/httpd

Bu durumda, httpd servisini durdurmanız gerekecektir. Servisinize bağlı olarak (Apache için httpd, Nginx için nginx), aşağıdaki komutlardan birini kullanın:

# Apache için
sudo systemctl stop httpd

Nginx için

sudo systemctl stop nginx

Servisi durdurduktan sonra, netstat komutunu tekrar çalıştırarak port 80’in boşaldığından emin olun.

Güvenlik Duvarı Yapılandırması

CentOS 7, varsayılan olarak firewalld güvenlik duvarı servisini kullanır. Let’s Encrypt sunucularının alan adınızın sahipliğini doğrulamak için sunucunuzun port 80’ine erişebilmesi gerekir. Bu nedenle, güvenlik duvarında HTTP (port 80) trafiğine izin vermelisiniz.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

İlk komut, HTTP servisi için kalıcı olarak bir kural ekler. İkinci komut ise güvenlik duvarı kurallarını yeniden yükleyerek değişikliklerin hemen etkili olmasını sağlar. Eğer HTTPS (port 443) trafiğine de izin vermek isterseniz (sertifikayı kurduktan sonra web sitenizi HTTPS üzerinden yayınlayacağınız için bu da gereklidir), aynı şekilde ekleyebilirsiniz:

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Bu adımları tamamladıktan sonra, Certbot Standalone modu ile sertifika almak için sunucunuz hazır olacaktır.

Certbot Standalone Modu ile SSL Sertifikası Alma

Şimdi sıra geldi asıl sertifika alma işlemine. Aşağıdaki komutu kullanarak Certbot’u Standalone modunda çalıştıracağız:

sudo certbot certonly --standalone -d ornekalanadiniz.com -d www.ornekalanadiniz.com

ÖNEMLİ: ornekalanadiniz.com ve www.ornekalanadiniz.com yerine kendi alan adlarınızı yazmayı unutmayın. Eğer birden fazla alt alan adı için sertifika almak istiyorsanız, her biri için ayrı bir -d bayrağı ekleyebilirsiniz (örneğin, -d blog.ornekalanadiniz.com).

Komutu çalıştırdıktan sonra Certbot, size bazı sorular soracaktır:

1. E-posta Adresi: Let’s Encrypt, sertifika süresi dolmak üzereyken veya önemli güvenlik bildirimleri olduğunda sizinle iletişime geçmek için bir e-posta adresi isteyecektir. Geçerli bir e-posta adresi girin.

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel): your-email@example.com

2. Hizmet Şartlarını Kabul Etme: Let’s Encrypt’in hizmet şartlarını okuyup kabul etmeniz istenecektir. Kabul etmek için A (Agree) yazıp Enter’a basın.

Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in
    order to register with the ACME server.
    (A)gree/(C)ancel: A

3. EFF ile E-posta Paylaşımı (İsteğe Bağlı): Electronic Frontier Foundation (EFF), Certbot’u geliştiren kuruluştur. Onlardan pazarlama e-postaları alıp almak istemediğiniz sorulur. Bu tamamen isteğe bağlıdır. Kabul etmek için Y (Yes), reddetmek için N (No) yazıp Enter’a basın.

Would you be willing to share your email address with the Electronic Frontier
    Foundation, a founding partner of the Let's Encrypt project and the non-profit
    organization that develops Certbot? We'd like to send you email about our work
    fighting for encryption and privacy.
    (Y)es/(N)o: N

Bu adımları tamamladıktan sonra Certbot, Standalone modunda geçici bir web sunucusu başlatacak ve Let’s Encrypt sunucularının alan adınızın sahipliğini doğrulamak için port 80 üzerinden bağlanmasını bekleyecektir. Doğrulama başarılı olursa, sertifikalarınız indirilecek ve aşağıdaki gibi bir başarı mesajı göreceksiniz:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/ornekalanadiniz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/ornekalanadiniz.com/privkey.pem
   This certificate will expire on 2024-07-20.
   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

Bu mesaj, sertifikalarınızın başarıyla alındığını ve sunucunuzdaki konumlarını gösterir.

Sertifika Dosyalarını Anlama

Certbot tarafından oluşturulan ve kaydedilen sertifika dosyaları /etc/letsencrypt/live/ornekalanadiniz.com/ dizininde bulunur. Bu dizin aslında /etc/letsencrypt/archive/ornekalanadiniz.com/ altındaki en son sertifika dosyalarına sembolik bağlantılar içerir. Bu yapı, sertifika yenileme işlemlerinde dosyaların kolayca güncellenmesini sağlar.

Bu dizinde bulacağınız ana dosyalar şunlardır:

* privkey.pem: Alan adınız için özel anahtarınızdır. Bu dosya kesinlikle gizli tutulmalıdır ve asla kimseyle paylaşılmamalıdır.
* cert.pem: Alan adınız için Let’s Encrypt tarafından verilen sunucu sertifikasıdır.
* chain.pem: Let’s Encrypt ara sertifikasıdır. Tarayıcıların sunucu sertifikanızı güven zinciri aracılığıyla doğrulamasını sağlar.
* fullchain.pem: cert.pem ve chain.pem dosyalarının birleşimidir. Çoğu web sunucusu yapılandırmasında (özellikle Nginx), bu dosyayı kullanmanız istenir.

Bu dosyaları web sunucunuzun (Apache, Nginx vb.) SSL yapılandırmasında kullanacaksınız.

Sertifika Yenilemesini Otomatikleştirme

Let’s Encrypt sertifikaları 90 gün süreyle geçerlidir. Bu süre nispeten kısa gibi görünse de, Certbot’un otomatik yenileme özelliği sayesinde bu bir sorun teşkil etmez. Certbot, sertifikaların süresi dolmadan önce otomatik olarak yenileme yapabilir.

Yenileme Testi

Sertifikalarınızın başarıyla yenilenip yenilenmeyeceğini test etmek için dry-run (kuru çalıştırma) seçeneğini kullanabilirsiniz:

sudo certbot renew --dry-run

Bu komut, gerçek bir yenileme işlemi yapmadan, tüm adımları simüle eder ve herhangi bir sorun olup olmadığını size bildirir. Eğer test başarılı olursa, gerçek yenileme işlemi de sorunsuz gerçekleşecektir.

Otomatik Yenileme

Certbot’un otomatik yenileme mekanizması, genellikle sisteminizde bir cron işi olarak ayarlanır. Certbot’u kurduğunuzda, genellikle bu cron işi otomatik olarak eklenir. Ancak, kontrol etmek veya manuel olarak eklemek isterseniz, aşağıdaki adımları izleyebilirsiniz.

Certbot’un yenileme komutu basittir:

sudo certbot renew

Bu komut, süresi dolmak üzere olan veya zaten dolmuş olan tüm sertifikaları yenilemeye çalışır. Certbot, sertifikanın süresinin dolmasına 30 günden az kaldığında yenileme işlemini başlatır.

Otomatik yenilemeyi sağlamak için, bu komutu düzenli aralıklarla çalıştıran bir cron işi oluşturmalısınız. Let’s Encrypt, sertifikaları günde iki kez yenilemeye çalışmayı önerir. Bu, herhangi bir soruna karşı yeterli zaman tanır ve sunucular üzerindeki yükü dengeler.

Cron işi oluşturmak için crontab dosyasını düzenleyin:

sudo crontab -e

Açılan editöre aşağıdaki satırı ekleyin:

0 0,12    root python -c 'import random; import time; time.sleep(random.random()  3600)' && certbot renew --quiet --standalone --post-hook "systemctl restart httpd || systemctl restart nginx"

Bu cron işini açıklayalım:

0 0,12 : Bu, cron zamanlamasıdır. Günde iki kez, gece yarısı (00:00) ve öğlen (12:00) çalıştırılacağı anlamına gelir.
* root: Komutun root kullanıcısı olarak çalıştırılacağını belirtir.
python -c 'import random; import time; time.sleep(random.random() 3600)': Bu kısım, komutun tam olarak belirtilen zamanda değil, o saat dilimi içinde rastgele bir zamanda başlamasını sağlar (0 ile 3600 saniye yani 0 ile 1 saat arasında bir gecikme). Bu, Let’s Encrypt sunucularına aynı anda binlerce yenileme isteği gelmesini önler.
* certbot renew: Certbot’un yenileme komutudur.
* --quiet: Bu bayrak, Certbot’un sadece hata durumunda çıktı vermesini sağlar. Başarılı yenilemelerde herhangi bir çıktı üretmez.
* --standalone: Yenileme işlemi için Certbot’un Standalone modunu kullanmasını sağlar. Bu çok önemlidir! Standalone modunda sertifika alırken veya yenilerken, Certbot geçici olarak port 80’i kullanmak için mevcut web sunucularını (Apache, Nginx) durdurmaya çalışır. Eğer web sunucunuz çalışıyorsa, bu komut onu durdurup yenileme işlemini yapar.
* --post-hook "systemctl restart httpd || systemctl restart nginx": Bu kısım, yenileme işlemi tamamlandıktan sonra çalışacak bir komut belirtir. Standalone modunda yenileme yaparken, Certbot web sunucunuzu durdurmuş olabileceğinden, yenileme başarılı olduktan sonra web sunucunuzu tekrar başlatmanız gerekir. Bu örnekte, önce Apache’yi (httpd) başlatmaya çalışır, bu başarısız olursa Nginx’i başlatmaya çalışır. Kendi web sunucunuza göre uygun komutu kullanın. Örneğin, sadece Apache kullanıyorsanız --post-hook "systemctl restart httpd" yeterlidir.

Bu cron işi sayesinde, Let’s Encrypt sertifikalarınızın süresi dolmadan otomatik olarak yenilenecek ve web sitenizin kesintisiz olarak güvenli kalması sağlanacaktır.

Web Sunucusu ile Entegrasyon (Örnek Yapılandırmalar)

Sertifikalarınızı aldıktan ve otomatik yenilemeyi ayarladıktan sonra, bu sertifikaları web sunucunuzla (Apache veya Nginx) entegre etmeniz gerekmektedir. Aşağıda her iki web sunucusu için temel yapılandırma örnekleri verilmiştir.

Apache ile Entegrasyon

Eğer Apache kullanıyorsanız, öncelikle Apache’nin SSL modülünün yüklü ve etkin olduğundan emin olun:

sudo yum install mod_ssl -y
sudo systemctl restart httpd

Ardından, alan adınız için bir sanal ana bilgisayar (Virtual Host) yapılandırma dosyası oluşturmanız veya mevcut olanı düzenlemeniz gerekir. Genellikle bu dosyalar /etc/httpd/conf.d/ dizininde bulunur. Örneğin, ornekalanadiniz.com-le-ssl.conf adında bir dosya oluşturabilirsiniz:

sudo vi /etc/httpd/conf.d/ornekalanadiniz.com-le-ssl.conf

İçine aşağıdaki içeriği ekleyin (kendi alan adınızı ve e-posta adresinizi güncellemeyi unutmayın):


    ServerName ornekalanadiniz.com
    ServerAlias www.ornekalanadiniz.com
    DocumentRoot /var/www/html # Kendi web sitenizin kök dizini

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/ornekalanadiniz.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ornekalanadiniz.com/privkey.pem
    # Eğer Apache'nin eski sürümlerinde SSLCertificateChainFile kullanmanız gerekirse:
    # SSLCertificateChainFile /etc/letsencrypt/live/ornekalanadiniz.com/chain.pem

    # Güvenlik için önerilen SSL ayarları
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLHonorCipherOrder on
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
    Header always set X-Frame-Options DENY
    Header always set X-Content-Type-Options nosniff
    SSLCompression off
    SSLSessionTickets Off

    ErrorLog /var/log/httpd/ornekalanadiniz.com-error.log
    CustomLog /var/log/httpd/ornekalanadiniz.com-access.log combined


HTTP'den HTTPS'ye yönlendirme (isteğe bağlı ama önerilir)

ServerName ornekalanadiniz.com ServerAlias www.ornekalanadiniz.com Redirect permanent / https://ornekalanadiniz.com/

Dosyayı kaydedip kapattıktan sonra, Apache yapılandırmasını test edin ve servisi yeniden başlatın:

sudo apachectl configtest
sudo systemctl restart httpd

Eğer herhangi bir hata yoksa, web siteniz artık HTTPS üzerinden erişilebilir olacaktır.

Nginx ile Entegrasyon (Kısa Örnek)

Nginx kullanıyorsanız, yapılandırma dosyanızı (genellikle /etc/nginx/conf.d/default.conf veya /etc/nginx/nginx.conf içinde tanımlanmış bir sunucu bloğu) düzenlemeniz gerekir:

sudo vi /etc/nginx/conf.d/ornekalanadiniz.com.conf

Aşağıdaki gibi bir sunucu bloğu ekleyin (kendi alan adınızı ve e-posta adresinizi güncellemeyi unutmayın):

server {
    listen 80;
    server_name ornekalanadiniz.com www.ornekalanadiniz.com;
    return 301 https://$host$request_uri; # HTTP'den HTTPS'ye yönlendirme
}

server {
    listen 443 ssl http2;
    server_name ornekalanadiniz.com www.ornekalanadiniz.com;

    ssl_certificate /etc/letsencrypt/live/ornekalanadiniz.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ornekalanadiniz.com/privkey.pem;

    # Güvenlik için önerilen SSL ayarları
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 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 X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

    root /var/www/html; # Kendi web sitenizin kök dizini
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/ornekalanadiniz.com-error.log;
    access_log /var/log/nginx/ornekalanadiniz.com-access.log;
}

Dosyayı kaydedip kapattıktan sonra, Nginx yapılandırmasını test edin ve servisi yeniden başlatın:

sudo nginx -t
sudo systemctl restart nginx

Bu adımların ardından Nginx de HTTPS trafiğini Let’s Encrypt sertifikalarınızla sunmaya başlayacaktır.

Sorun Giderme

Certbot ile sertifika alma veya yenileme sırasında bazı sorunlarla karşılaşabilirsiniz. İşte yaygın sorunlar ve çözümleri:

* Port 80 Zaten Kullanılıyor:
* Problem binding to port 80: Could not bind to IPv4 address 0.0.0.0:80: Address already in use gibi bir hata alıyorsanız, bu port 80’in başka bir servis tarafından kullanıldığı anlamına gelir. sudo netstat -tulnp | grep :80 komutuyla hangi servisin kullandığını bulun ve sertifika alma/yenileme işlemi sırasında bu servisi durdurun (sudo systemctl stop ). Yenileme için cron işinizde --post-hook kullandığınızdan emin olun.
* Güvenlik Duvarı Engeli:
* Certbot’un Let’s Encrypt sunucularıyla iletişim kuramaması durumunda (örneğin, Timeout during connect (likely firewall problem)), güvenlik duvarınızın port 80’i engellemediğinden emin olun. sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload komutlarını kullanarak port 80’e izin verin.
* DNS Sorunları:
* The server could not connect to the client to verify the domain gibi bir hata alıyorsanız, alan adınızın DNS kayıtlarının (A kaydı) sunucunuzun doğru genel IP adresini işaret ettiğinden emin olun. DNS değişikliklerinin yayılması biraz zaman alabilir.
* Certbot Günlükleri:
* Daha fazla bilgi için Certbot’un günlük dosyalarını kontrol edin: /var/log/letsencrypt/. Bu günlükler, karşılaşılan sorunların ayrıntılı nedenlerini içerebilir.

Sonuç

Bu makalede, CentOS 7 sunucusu üzerinde Certbot’un Standalone modunu kullanarak Let’s Encrypt SSL sertifikalarını nasıl alacağınızı, kuracağınızı ve otomatik olarak nasıl yenileyeceğinizi ayrıntılı bir şekilde öğrendiniz. Let’s Encrypt ve Certbot, interneti daha güvenli hale getirme misyonuyla, ücretsiz ve otomatik SSL/TLS sertifikalarını herkesin erişimine sunarak web güvenliği standartlarını yükseltmiştir.

Certbot’un Standalone modu, özellikle sunucunuzda başka bir web sunucusu çalışmıyorsa veya mevcut web sunucusunu geçici olarak durdurma esnekliğine sahipseniz, sertifika alımı için basit ve etkili bir yöntem sunar. Sertifikalarınızı başarıyla aldıktan sonra, web sunucunuzla entegre etmeyi ve otomatik yenileme için bir cron işi ayarlamayı unutmayın. Bu adımlar, web sitenizin veya uygulamanızın kesintisiz olarak HTTPS üzerinden güvenli bir şekilde hizmet vermesini sağlayacaktır.

SSL/TLS sertifikaları, yalnızca veri güvenliği için değil, aynı zamanda arama motoru sıralamaları ve kullanıcı güveni açısından da kritik öneme sahiptir. Bu rehberdeki adımları takip ederek, CentOS 7 sunucunuzda güvenli bir web deneyimi sunmak için önemli bir adım atmış olacaksınız.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.