Takip et

Nginx ve Debian 10 Üzerinde Kendi İmzalı SSL Sertifikası Oluşturma Rehberi

Nginx ve Debian 10 Üzerinde Kendi İmzalı SSL Sertifikası Oluşturma Rehberi İnternet üzerindeki veri güvenliği, günümüzün dijital dünyas

Nginx ve Debian 10 Üzerinde Kendi İmzalı SSL Sertifikası Oluşturma Rehberi

İnternet üzerindeki veri güvenliği, günümüzün dijital dünyasında vazgeçilmez bir öneme sahiptir. Kullanıcılar ve sunucular arasında iletilen bilgilerin şifrelenmesi, hassas verilerin kötü niyetli üçüncü tarafların eline geçmesini engellemenin temel yoludur. Bu şifreleme işlemi genellikle SSL/TLS (Secure Sockets Layer/Transport Layer Security) protokolleri aracılığıyla gerçekleştirilir. Bir web sunucusunun SSL/TLS kullanabilmesi için bir SSL sertifikasına ihtiyacı vardır. Bu makalede, popüler web sunucusu Nginx’i Debian 10 işletim sistemi üzerinde kullanarak, kendi imzalı (self-signed) bir SSL sertifikasını nasıl oluşturacağınızı ve yapılandıracağınızı adım adım detaylı bir şekilde inceleyeceğiz.

Giriş: SSL/TLS ve Kendi İmzalı Sertifikaların Önemi

SSL/TLS, bir web sunucusu ile bir web tarayıcısı arasında şifreli bir bağlantı kurmayı sağlayan kriptografik protokollerdir. Bu protokoller, veri bütünlüğünü, kimlik doğrulamayı ve gizliliği garanti eder. Bir web sitesi HTTPS (Hypertext Transfer Protocol Secure) kullandığında, bağlantı SSL/TLS ile güvence altına alınmış demektir. Bu durum, özellikle çevrimiçi alışveriş, bankacılık işlemleri veya kişisel bilgilerin paylaşıldığı siteler için hayati öneme sahiptir.

Bir SSL sertifikası, bir web sitesinin kimliğini doğrulayan ve şifreli bağlantının kurulmasına olanak tanıyan dijital bir belgedir. Normalde, bu sertifikalar Let’s Encrypt, DigiCert, Comodo gibi güvenilir bir Sertifika Yetkilisi (CA) tarafından imzalanır. Tarayıcılar, bu CA’ların kök sertifikalarını güvendiği için, bu CA’lar tarafından imzalanan sertifikalara otomatik olarak güvenirler ve herhangi bir uyarı vermezler.

Ancak, kendi imzalı bir SSL sertifikası, bir Sertifika Yetkilisi tarafından değil, doğrudan sizin tarafınızdan imzalanan bir sertifikadır. Bu sertifikalar, tarayıcılar tarafından otomatik olarak güvenilir kabul edilmezler, çünkü tarayıcıların güvendiği bilinen bir otorite tarafından doğrulanmamışlardır. Bu nedenle, kendi imzalı bir sertifika kullanılan bir siteye erişildiğinde tarayıcılar genellikle bir güvenlik uyarısı verir.

Peki, neden kendi imzalı bir sertifika kullanmak isteyelim?
* Geliştirme Ortamları: Yerel geliştirme ortamlarında veya test sunucularında HTTPS bağlantısını simüle etmek için idealdir. Gerçek bir CA sertifikası almak bu aşamalarda gereksiz maliyet ve zaman kaybı olabilir.
* Dahili Uygulamalar: İnternet’e açık olmayan, yalnızca şirket içi ağda kullanılan uygulamalar için güvenlik sağlamak amacıyla kullanılabilir. Bu tür durumlarda, kullanıcılar sertifikayı manuel olarak tarayıcılarına ekleyerek uyarıyı kaldırabilirler.
* Maliyet Etkinliği: Ücretsizdir ve herhangi bir üçüncü taraf hizmetine bağımlılık gerektirmez.

Bu makalede Debian 10’u tercih etmemizin sebebi, kararlılığı, güvenilirliği ve geniş paket desteği ile sunucu ortamlarında yaygın olarak kullanılmasıdır. Nginx ise yüksek performansı, düşük kaynak tüketimi ve esnek yapılandırma seçenekleri sayesinde modern web sunucularında popüler bir tercihtir. Bu kombinasyon, kendi imzalı SSL sertifikalarını test etmek veya dahili kullanımlar için mükemmel bir platform sunar.

Bu rehberde, Nginx’in Debian 10 üzerinde kurulu olduğunu varsayıyoruz. Eğer kurulu değilse, ilk adımda kurulum talimatlarını da bulacaksınız. Adımları takip ederken, sudo komutunu kullanmak için yetkili bir kullanıcıya sahip olduğunuzdan emin olun.

1. Nginx Kurulumu (Gerekliyse)

Eğer sunucunuzda Nginx zaten kuruluysa, bu adımı atlayabilirsiniz. Aksi takdirde, Nginx’i kurmak için aşağıdaki komutları kullanın:

İlk olarak, paket listesini güncelleyin:

sudo apt update

Ardından Nginx’i kurun:

sudo apt install nginx -y

Kurulum tamamlandıktan sonra, Nginx servisinin otomatik olarak başlamasını sağlayın ve servisi başlatın:

sudo systemctl start nginx
sudo systemctl enable nginx

Eğer sunucunuzda UFW (Uncomplicated Firewall) gibi bir güvenlik duvarı etkinse, Nginx’in HTTP trafiğine izin verdiğinden emin olun:

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS' # HTTPS için şimdiden izin verebiliriz.
sudo ufw status # Güvenlik duvarı durumunu kontrol edin

Tarayıcınızda sunucunuzun IP adresini ziyaret ederek Nginx’in başarıyla çalıştığını doğrulayabilirsiniz. “Welcome to Nginx!” sayfasını görmelisiniz.

2. SSL Sertifikası ve Özel Anahtar İçin Dizin Oluşturma

Güvenlik ve düzenlilik açısından, SSL sertifikalarınızı ve özel anahtarlarınızı Nginx’in yapılandırma dizininde güvenli bir yerde saklamak en iyisidir. Genellikle /etc/nginx/ssl dizini bu amaçla kullanılır.

Aşağıdaki komutla bu dizini oluşturun:

sudo mkdir -p /etc/nginx/ssl

mkdir -p komutu, eğer üst dizinler mevcut değilse onları da oluşturur.

3. Kendi İmzalı SSL Sertifikası Oluşturma

Şimdi openssl komutunu kullanarak kendi imzalı SSL sertifikanızı ve özel anahtarınızı oluşturacağız. OpenSSL, kriptografik işlevler sağlayan güçlü bir komut satırı aracıdır ve çoğu Linux dağıtımında varsayılan olarak bulunur.

Aşağıdaki komutu çalıştırın:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Bu komutu detaylıca inceleyelim:
* sudo openssl: OpenSSL aracını yönetici yetkileriyle çalıştırmak için.
* req: Bir sertifika imzalama isteği (Certificate Signing Request – CSR) oluşturmak veya bir sertifika oluşturmak için kullanılır.
* -x509: Bu bayrak, sertifika imzalama isteği yerine doğrudan bir X.509 sertifikası oluşturacağımızı belirtir. Bu, kendi imzalı sertifikalar için kullanılır.
* -nodes: “No DES” anlamına gelir. Özel anahtarın şifrelenmemesini sağlar. Eğer bu bayrağı kullanmazsanız, Nginx her başlatıldığında özel anahtarın şifresini girmeniz istenir. Bu, otomatik başlangıç için uygun değildir.
* -days 365: Sertifikanın geçerlilik süresini gün cinsinden belirtir. Burada 365 gün (1 yıl) olarak ayarlanmıştır. Üretim ortamlarında bu süre genellikle daha uzundur, ancak kendi imzalı sertifikalar için bu yeterlidir.
* -newkey rsa:2048: Yeni bir özel anahtar oluşturulacağını belirtir. rsa:2048 ise RSA algoritması kullanarak 2048 bit uzunluğunda bir anahtar oluşturulacağını gösterir. 2048 bit, günümüz standartlarında yeterince güvenli kabul edilen bir anahtar uzunluğudur.
* -keyout /etc/nginx/ssl/nginx.key: Oluşturulan özel anahtarın kaydedileceği dosya yolunu belirtir. Bu dosya, nginx.key adıyla /etc/nginx/ssl/ dizinine kaydedilecektir. Bu dosya, sunucunuzun gizli anahtarıdır ve kesinlikle güvende tutulmalıdır.
* -out /etc/nginx/ssl/nginx.crt: Oluşturulan sertifikanın kaydedileceği dosya yolunu belirtir. Bu dosya, nginx.crt adıyla aynı dizine kaydedilecektir. Bu dosya, genel sertifikadır ve herkesle paylaşılabilir.

Bu komutu çalıştırdıktan sonra, OpenSSL size bazı sorular soracaktır. Bu bilgiler sertifikanın içeriğinde yer alacaktır:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Istanbul
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com veya sunucu_IP_adresi
Email Address []:admin@your_domain.com

Önemli Not: Common Name (Ortak Ad) alanı çok önemlidir. Bu alana, Nginx’in hizmet vereceği alan adını (örneğin, example.com, www.example.com) veya sunucunun IP adresini (örneğin, 192.168.1.100) girmelisiniz. Eğer bu alana girdiğiniz değer, tarayıcınızdan erişmeye çalıştığınız adresle eşleşmezse, tarayıcı bir “güvenlik uyarısı” veya “alan adı uyuşmazlığı” hatası verecektir. Eğer sadece IP adresi üzerinden erişim sağlayacaksanız, buraya sunucunuzun IP adresini girmeniz gerekir. Geliştirme ortamında localhost da girebilirsiniz.

Diğer alanları kendi bilgilerinize göre doldurabilir veya varsayılan değerleri kabul edebilirsiniz. Genellikle bu alanlar kendi imzalı sertifikalar için kritik değildir, ancak Common Name hayati öneme sahiptir.

Sertifika ve özel anahtar dosyaları başarıyla oluşturulduktan sonra, bu dosyaların izinlerini kontrol etmek iyi bir güvenlik uygulamasıdır. Özel anahtar (.key dosyası) sadece root kullanıcısı tarafından okunabilir olmalıdır.

sudo chmod 600 /etc/nginx/ssl/nginx.key
sudo chmod 644 /etc/nginx/ssl/nginx.crt

Bu komutlar, özel anahtar dosyasının yalnızca sahibinin (root) okuma ve yazma iznine sahip olmasını, sertifika dosyasının ise sahibinin okuma ve yazma, diğer kullanıcıların ise sadece okuma iznine sahip olmasını sağlar.

4. Nginx Yapılandırması

Şimdi Nginx’i yeni oluşturduğumuz SSL sertifikasını kullanacak şekilde yapılandırmamız gerekiyor. Bu, Nginx’in HTTPS isteklerini dinlemesini ve sertifikayı kullanarak şifreli bağlantılar kurmasını sağlayacaktır.

4.1. Varsayılan Yapılandırma Dosyasını Düzenleme

Nginx’in varsayılan yapılandırma dosyası genellikle /etc/nginx/sites-available/default konumundadır. Bu dosyayı düzenleyerek HTTPS desteğini etkinleştireceğiz.

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

Dosyayı açtıktan sonra, mevcut server bloğunu bulun veya yeni bir server bloğu ekleyin. Genellikle, varsayılan yapılandırma dosyasında HTTP (port 80) için bir server bloğu bulunur ve HTTPS (port 443) için yorum satırı halinde bir bölüm bulunur.

Aşağıdaki yapılandırmayı (veya benzerini) server bloğunuza ekleyin veya mevcut yorum satırlarını düzenleyin:

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    root /var/www/html; # Web sitenizin kök dizini
    index index.html index.htm index.nginx-debian.html;

    server_name your_domain.com www.your_domain.com; # Common Name ile eşleşmeli veya sunucu IP adresi

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    # Opsiyonel: Daha güçlü SSL/TLS ayarları
    ssl_protocols TLSv1.2 TLSv1.3; # Yalnızca güvenli protokolleri kullanın
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_stapling on; # OCSP Stapling etkinleştirme
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s; # DNS çözümleyiciler (OCSP için)
    resolver_timeout 5s;

    # HTTP Strict Transport Security (HSTS) - Opsiyonel ama önerilir
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

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

Opsiyonel: HTTP isteklerini HTTPS'ye yönlendirme

server { listen 80 default_server; listen [::]:80 default_server; server_name your_domain.com www.your_domain.com; # Common Name ile eşleşmeli veya sunucu IP adresi return 301 https://$host$request_uri; }

Yukarıdaki yapılandırmadaki önemli noktalar:
* listen 443 ssl default_server;: Nginx’in 443 numaralı porttan (HTTPS için standart port) SSL/TLS bağlantılarını dinlemesini sağlar. default_server bu sunucu bloğunu, belirli bir server_name eşleşmediğinde varsayılan olarak kullanır.
* ssl_certificate /etc/nginx/ssl/nginx.crt;: Oluşturduğumuz sertifika dosyasının yolunu belirtir.
* ssl_certificate_key /etc/nginx/ssl/nginx.key;: Oluşturduğumuz özel anahtar dosyasının yolunu belirtir.
* server_name your_domain.com www.your_domain.com;: Buraya sertifikayı oluştururken Common Name alanına girdiğiniz değeri (alan adı veya IP adresi) yazmalısınız.
* Opsiyonel Güçlü SSL Ayarları: Bu bölüm, HTTPS bağlantınızın güvenliğini artırmak için önerilen bir dizi ayarı içerir.
* ssl_protocols: Yalnızca modern ve güvenli TLS protokollerini (TLSv1.2 ve TLSv1.3) kullanır. Eski ve zayıf SSL/TLS sürümlerini devre dışı bırakır.
* ssl_ciphers: Güvenli şifreleme algoritmalarını (cipher suites) belirtir. Bu liste, bilinen zayıf algoritmaları dışarıda bırakır.
* ssl_prefer_server_ciphers on;: Sunucunun şifreleme algoritması seçiminde öncelikli olmasını sağlar.
* ssl_session_cache ve ssl_session_timeout: SSL oturum önbelleğini etkinleştirerek performans artışı sağlar.
* ssl_stapling on; ve ssl_stapling_verify on;: OCSP Stapling’i etkinleştirir. Bu, tarayıcıların sertifikanın iptal durumunu kontrol etme hızını artırır ve gizliliği iyileştirir.
* resolver: OCSP Stapling için DNS çözümleyicileri belirtir.
* add_header Strict-Transport-Security ...: HTTP Strict Transport Security (HSTS) başlığını ekler. Bu, tarayıcılara sitenize her zaman HTTPS üzerinden bağlanmaları gerektiğini bildirir ve gelecekteki HTTP isteklerini otomatik olarak HTTPS’ye dönüştürür. Bu, sitenizi man-in-the-middle saldırılarına karşı korur.

* Opsiyonel HTTP’den HTTPS’ye Yönlendirme: Bu ikinci server bloğu, 80 numaralı porttan (HTTP) gelen tüm istekleri otomatik olarak 443 numaralı porta (HTTPS) yönlendirir. Bu, kullanıcıların sitenize yanlışlıkla HTTP üzerinden erişmesini engeller ve her zaman güvenli bağlantı kullanmalarını sağlar. your_domain.com yerine kendi alan adınızı veya IP adresinizi yazmayı unutmayın.

Değişiklikleri kaydetmek için CTRL+X, ardından Y ve Enter tuşlarına basın.

4.2. Nginx Yapılandırma Testi ve Yeniden Başlatma

Yapılandırma dosyasında yaptığınız değişikliklerin bir hata içermediğinden emin olmak için Nginx yapılandırmasını test etmelisiniz:

sudo nginx -t

Eğer her şey yolundaysa, şöyle bir çıktı görmelisiniz:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herhangi bir hata mesajı alırsanız, yapılandırma dosyanızı tekrar kontrol edin ve hataları düzeltin.
Yapılandırma testi başarılı olduktan sonra, Nginx servisini yeniden başlatarak değişikliklerin etkinleşmesini sağlayın:

sudo systemctl restart nginx

5. Güvenlik Duvarı Yapılandırması (Opsiyonel)

Eğer UFW güvenlik duvarını kullanıyorsanız ve daha önce HTTPS için izin vermediyseniz, şimdi 443 numaralı port için izin vermelisiniz.

sudo ufw allow 'Nginx HTTPS'
sudo ufw reload
sudo ufw status

sudo ufw status komutu, Nginx Full (HTTP ve HTTPS) veya Nginx HTTPS kuralının etkin olduğunu göstermelidir.

6. Tarayıcıda Test Etme

Artık Nginx sunucunuz kendi imzalı SSL sertifikasını kullanarak HTTPS üzerinden hizmet veriyor olmalıdır. Tarayıcınızı açın ve https://your_domain.com veya https://your_server_ip_address adresine gidin (sertifika oluştururken Common Name olarak ne girdiyseniz onu kullanın).

Tarayıcınız muhtemelen bir güvenlik uyarısı gösterecektir. Bu uyarı, “Bağlantınız özel değil”, “NET::ERR_CERT_AUTHORITY_INVALID” veya benzeri bir mesaj olabilir. Bu tamamen normaldir ve beklenen bir davranıştır. Çünkü sertifikanız, tarayıcınızın güvendiği bir Sertifika Yetkilisi tarafından imzalanmamıştır.

Bu uyarıyı geçmek için, genellikle “Gelişmiş” veya “Daha Fazla Bilgi” seçeneğine tıklayarak “devam et” veya “siteye git” gibi bir seçeneği seçmeniz gerekir. Örneğin, Chrome’da “Gelişmiş” butonuna, ardından “güvenli olmayan şekilde devam et” veya “IP adresine ilerle” (Proceed to IP address) gibi bir seçeneğe tıklayabilirsiniz.

Uyarıyı geçtikten sonra, Nginx’in “Welcome to Nginx!” sayfasını HTTPS üzerinden görmelisiniz. Tarayıcınızın adres çubuğunda genellikle bir kilit simgesi yerine “Güvenli Değil” veya “Not Secure” gibi bir uyarı göreceksiniz. Bu, sertifikanın kendi imzalı olmasından kaynaklanır.

Sertifikayı Tarayıcıya Ekleme (Opsiyonel):
Eğer bu sunucuyu sürekli kullanacak ve bu uyarıyı görmek istemiyorsanız (özellikle dahili uygulamalar için), oluşturduğunuz .crt dosyasını tarayıcınızın veya işletim sisteminizin güvenilen kök sertifikaları deposuna manuel olarak ekleyebilirsiniz. Bu işlem tarayıcıdan tarayıcıya ve işletim sisteminden işletim sistemine farklılık gösterir. Örneğin:
* Firefox: Ayarlar -> Gizlilik ve Güvenlik -> Sertifikaları Görüntüle -> Yetkililer -> İçeri Aktar…
* Chrome (Linux): Chrome, işletim sisteminin sertifika deposunu kullanır. Sertifikayı sisteme eklemeniz gerekir.
* Windows: Sertifikayı çift tıklayarak yükleme sihirbazını kullanabilirsiniz.

Bu adımı genellikle sadece test veya dahili kullanım için yapmanız önerilir. Üretim ortamlarında her zaman güvenilir bir CA tarafından imzalanmış sertifikalar kullanmalısınız.

7. Sertifika Yenileme

Kendi imzalı sertifikamızın geçerlilik süresi 365 gün (1 yıl) olarak ayarlanmıştır. Süre dolduğunda sertifika geçersiz hale gelecek ve tarayıcılar daha ciddi hatalar vermeye başlayacaktır. Sertifikanızı yenilemek için, basitçe üçüncü adımda kullandığınız openssl komutunu tekrar çalıştırabilirsiniz:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Bu komut, mevcut nginx.key ve nginx.crt dosyalarının üzerine yazarak yeni bir sertifika ve anahtar çifti oluşturacaktır. Komutu çalıştırdıktan sonra tekrar aynı soruları yanıtlamanız gerekecektir. Özellikle Common Name alanının doğru olduğundan emin olun.

Yeni sertifikayı oluşturduktan sonra, Nginx’i yeniden başlatmanız gerekir ki yeni sertifikayı yüklesin:

sudo systemctl restart nginx

Bu işlem, sertifikanızın geçerlilik süresini bir yıl daha uzatacaktır.

8. Ek Güvenlik İpuçları

Kendi imzalı sertifikalar geliştirme ve test ortamları için kullanışlı olsa da, genel güvenlik uygulamalarını göz ardı etmemek önemlidir.

* Dosya İzinleri: Özel anahtar dosyanız (.key uzantılı) kesinlikle gizli tutulmalıdır. Yalnızca root kullanıcısının okuma/yazma iznine sahip olduğundan emin olun (chmod 600). Sertifika dosyası (.crt uzantılı) ise herkes tarafından okunabilir olabilir (chmod 644). Bu izinler, yetkisiz erişimi engeller.
* Güçlü Şifreler ve Protokoller: Nginx yapılandırmanızda ssl_protocols ve ssl_ciphers direktiflerini kullanarak yalnızca en güvenli TLS protokollerini (TLSv1.2, TLSv1.3) ve güçlü şifreleme algoritmalarını kullandığınızdan emin olun. Eski ve zayıf protokoller (SSLv3, TLSv1.0, TLSv1.1) ve şifreler güvenlik açıkları içerebilir. Yukarıdaki örnek yapılandırma, modern ve güvenli bir yaklaşım sunar.
* HTTP Strict Transport Security (HSTS): add_header Strict-Transport-Security direktifi, tarayıcılara sitenize yalnızca HTTPS üzerinden erişmeleri gerektiğini bildirir. Bu, kullanıcıların sitenize yanlışlıkla veya kötü niyetli bir saldırı sonucu HTTP üzerinden erişmesini engeller ve SSL soyma saldırılarına karşı koruma sağlar. Uzun bir max-age değeri kullanmak önemlidir.
* OCSP Stapling: ssl_stapling on; ve ssl_stapling_verify on; direktifleri, tarayıcıların sertifikanın iptal edilip edilmediğini doğrudan sunucudan öğrenmesini sağlar. Bu, gizliliği artırır ve sayfa yükleme sürelerini iyileştirir.
* Nginx Güncellemeleri: Nginx ve Debian işletim sistemini düzenli olarak güncel tutmak, bilinen güvenlik açıklarının kapatılması açısından hayati öneme sahiptir.

sudo apt update
    sudo apt upgrade

* Üretim Ortamları İçin CA İmzalı Sertifikalar: Bu rehberde kendi imzalı bir sertifika oluşturmayı öğrenmiş olsanız da, canlı ve herkese açık üretim ortamları için her zaman güvenilir bir Sertifika Yetkilisi (CA) tarafından imzalanmış bir sertifika kullanmalısınız. Let’s Encrypt, ücretsiz ve otomatikleştirilmiş sertifikalar sunarak bu ihtiyacı karşılamak için harika bir seçenektir. CA imzalı sertifikalar, tarayıcılar tarafından otomatik olarak güvenilir kabul edilir ve kullanıcılarınıza herhangi bir güvenlik uyarısı göstermez.

Sonuç

Bu makalede, Debian 10 işletim sistemi üzerinde Nginx web sunucusu için kendi imzalı bir SSL sertifikasını adım adım nasıl oluşturacağınızı ve yapılandıracağınızı öğrendiniz. Kendi imzalı sertifikalar, geliştirme, test veya dahili ağ uygulamaları gibi belirli senaryolar için pratik ve maliyetsiz bir çözüm sunar.

Sertifika oluşturma sürecinde openssl komutunun nasıl kullanılacağını, Nginx yapılandırma dosyasında hangi direktiflerin ayarlanması gerektiğini ve HTTP isteklerini HTTPS’ye nasıl yönlendireceğinizi detaylıca inceledik. Ayrıca, güçlü SSL/TLS ayarları ve HSTS gibi ek güvenlik önlemlerinin önemini de vurguladık.

Unutmayın ki kendi imzalı sertifikalar, tarayıcılar tarafından varsayılan olarak güvenilir kabul edilmez ve kullanıcılarınıza güvenlik uyarıları gösterecektir. Bu nedenle, herkese açık ve ticari üretim ortamları için her zaman Let’s Encrypt gibi güvenilir bir Sertifika Yetkilisi tarafından imzalanmış sertifikaları tercih etmelisiniz.

Bu rehber, Nginx ve SSL/TLS güvenliğinin temel prensiplerini anlamanız için sağlam bir temel oluşturmuştur. Güvenli web uygulamaları geliştirme yolculuğunuzda bu bilgilerin size faydalı olacağını umuyoruz. Güvenliğinizi sağlamak için her zaman en iyi uygulamaları takip etmeyi ve sistemlerinizi düzenli olarak güncellemeyi unutmayın.

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.