SSL Sertifikası Nedir?
SSL sertifikası, web sitesi ile ziyaretçi arasındaki veri iletişimini şifreleyen güvenlik katmanıdır. Günümüzde SSL sertifikası kullanılan siteler HTTPS protokolü üzerinden çalışır.
Bu dokümandaki adımlar, kemaltokmak.com alan adı için Nginx Proxy Manager üzerinden Let's Encrypt SSL sertifikası alma sürecinde uygulanan gerçek işlemlerden hazırlanmıştır.
HTTPS Neden Önemlidir?
HTTPS, kullanıcı ile sunucu arasındaki trafiğin şifrelenmesini sağlar. Bu hem güvenlik hem de kullanıcı güveni açısından önemlidir.
- Veri iletişimi şifrelenir.
- Tarayıcıda güvenli kilit simgesi görünür.
- HTTP trafiği güvenli HTTPS trafiğine yönlendirilir.
- Modern web siteleri için standart güvenlik gereksinimidir.
Let's Encrypt Nedir?
Let's Encrypt ücretsiz SSL sertifikası sağlayan yaygın bir sertifika otoritesidir. Nginx Proxy Manager, Let's Encrypt sertifikalarını web arayüzü üzerinden kolayca almayı sağlar.
Nginx Proxy Manager kullanırken sertifika alma işlemi için ayrıca manuel certbot komutları yazmamıza gerek kalmaz.
SSL İçin Ön Gereksinimler
SSL sertifikası alabilmek için alan adının doğru şekilde VPS sunucusuna yönlenmiş olması ve 80/443 portlarının açık olması gerekir.
- Domain VPS IP adresine yönlenmiş olmalı.
- A kaydı doğru olmalı.
- www kaydı doğru olmalı.
- Nginx Proxy Manager çalışıyor olmalı.
- 80 ve 443 portları açık olmalı.
- Proxy Host doğru container'a yönlenmeli.
Nginx Proxy Manager SSL Sekmesi
Nginx Proxy Manager panelinde SSL ayarları, Proxy Host düzenleme ekranındaki SSL sekmesinden yapılır.
Hosts → Proxy Hosts → ilgili domain → Edit → SSL
Yeni SSL Sertifikası Talep Etme
SSL sekmesinde sertifika seçeneği olarak yeni bir Let's Encrypt sertifikası talep edilir.
SSL Certificate: Request a new SSL Certificate
Domain alanında ana domain ve www alt alan adı birlikte seçili olmalıdır.
kemaltokmak.com
www.kemaltokmak.com
E-posta Adresi ve Kullanım Şartları
Let's Encrypt sertifikası talep ederken geçerli bir e-posta adresi girilir ve kullanım şartları kabul edilir.
Email Address: mail@ornek.com
I Agree to the Let's Encrypt Terms of Service: Aktif
E-posta adresi sertifika bildirimleri için kullanılabilir. Bu nedenle geçerli ve erişilebilir bir adres kullanmak önemlidir.
Force SSL Ayarı
Force SSL seçeneği aktif edildiğinde HTTP ile gelen istekler otomatik olarak HTTPS'e yönlendirilir.
Force SSL: Aktif
Bu ayar sayesinde ziyaretçi http:// ile girse bile site güvenli https:// adresine yönlenir.
HTTP/2 Desteği
HTTP/2, modern tarayıcılarda daha performanslı bağlantı kurulmasına yardımcı olur. Nginx Proxy Manager içinde kolayca aktif edilebilir.
HTTP/2 Support: Aktif
HSTS Ayarı
HSTS, tarayıcılara bu alan adının sadece HTTPS ile açılması gerektiğini bildirir. Güvenliği artırır ancak dikkatli kullanılmalıdır.
HSTS aktif edildikten sonra tarayıcılar siteyi belirli süre boyunca yalnızca HTTPS ile açmaya çalışır. SSL yapılandırması tam olarak çalışmadan aktif etmek sorun çıkarabilir.
HSTS Enabled: İsteğe bağlı
HSTS Subdomains: Dikkatli kullanılmalı
curl ile HTTPS Kontrolü
Sertifika alındıktan sonra terminal üzerinden HTTP ve HTTPS davranışı kontrol edilir.
HTTP isteğinin HTTPS'e yönlenip yönlenmediğini kontrol edelim:
curl -I http://kemaltokmak.com
Beklenen cevap:
HTTP/1.1 301 Moved Permanently
Location: https://kemaltokmak.com/
HTTPS cevabını kontrol edelim:
curl -I https://kemaltokmak.com
Tarayıcı Üzerinden Kontrol
Tarayıcıda alan adı açıldığında adres çubuğunda kilit simgesi görünmelidir. Bu, sitenin HTTPS üzerinden açıldığını gösterir.
Sertifika Yenileme Kontrolü
Let's Encrypt sertifikaları belirli sürelerle yenilenir. Nginx Proxy Manager bu yenilemeyi otomatik olarak yönetir. Yine de loglardan kontrol etmek faydalıdır.
docker logs nginx-proxy-manager
Sertifika yenileme sürecini test etmek için sistemde certbot varsa şu komut kullanılabilir:
certbot renew --dry-run
Nginx Proxy Manager ile alınan sertifikalarda genellikle yenileme işlemi panel ve container tarafından otomatik yönetilir.
Karşılaşılan Sorunlar ve Çözümler
SSL sertifikası alınırken en sık karşılaşılan sorunlar DNS'in yanlış IP'ye gitmesi, 80/443 portlarının kapalı olması veya Proxy Host ayarlarının hatalı yapılmasıdır.
DNS Kontrolü
dig kemaltokmak.com
Port Kontrolü
ufw status
Container Kontrolü
docker ps
Nginx Proxy Manager Logları
docker logs nginx-proxy-manager
Let's Encrypt doğrulama yaparken domainin gerçek sunucuya ulaşabilmesi gerekir. DNS yanlışsa veya 80 portu kapalıysa sertifika alınamaz.
Bu Dokümanda Ne Öğrendik?
Bu dokümanda Nginx Proxy Manager üzerinden Let's Encrypt SSL sertifikası almayı, Force SSL ile HTTP trafiğini HTTPS'e yönlendirmeyi, HTTP/2 ve HSTS ayarlarını, terminal ve tarayıcı üzerinden HTTPS kontrolü yapmayı öğrendik.
- SSL sertifikasının ne işe yaradığını öğrendik.
- HTTPS'in önemini inceledik.
- Let's Encrypt sertifikası talep ettik.
- Nginx Proxy Manager SSL sekmesini kullandık.
- Force SSL ayarını aktif ettik.
- HTTP/2 desteğini etkinleştirdik.
- HSTS ayarını dikkatli kullanmayı öğrendik.
- curl ile HTTP ve HTTPS kontrolü yaptık.
- Sertifika yenileme ve log kontrollerini öğrendik.