- Konu sahibi
- #1
SSL sertifikası oluşturmanın en pratik yolu, alan adını sunucuda doğrulayan bir ACME istemcisi kullanmaktır. Kendi sunucunuz varsa Certbot ile Let’s Encrypt sertifikası alıp web sunucusuna otomatik kurabilirsiniz. Paylaşımlı hosting kullanıyorsanız genellikle cPanel, Plesk veya hosting yönetim panelindeki Let’s Encrypt/SSL bölümünü etkinleştirmeniz yeterlidir; sertifika oluşturma ve yenileme işlemini sağlayıcı yürütür.
SSL adı yaygın olsa da güncel bağlantılar TLS protokolüyle korunur. Sertifika, tarayıcının
Aşağıdaki koşullar Nginx ve HTTP-01 kullanan örnek içindir; DNS-01 aynı web/port koşullarını gerektirmez.
Paylaşımlı hostingde bu yetkilere sahip değilseniz komut çalıştırmak yerine hosting panelindeki otomatik SSL özelliğini kullanın.
Aşağıdaki en küçük örnek, Nginx üzerinde çalışan ve Certbot ile Nginx eklentisinin kurulumu tamamlanmış, geçerli Nginx yapılandırmasına sahip bir sunucu içindir. Mevcut yapılandırmayı koruyun; otomatik kurulum onu değiştirebilir. Apache kullanıyorsanız
Başarılı ilk komut sonunda sertifikanın alındığını ve web sunucusu yapılandırmasının güncellendiğini belirten bir çıktı görürsünüz.
Certbot, sertifikayı isteyen kişinin alan adını kontrol ettiğini kanıtlamak için bir doğrulama yöntemi kullanır. Normal web sitesi için HTTP-01 yöntemi çoğu zaman yeterlidir ve sunucunun 80 numaralı porttan erişilebilir olmasını gerektirir. Wildcard sertifika, örneğin
Kararı şu şekilde verebilirsiniz:
Cloudflare kullanıyorsanız iki ayrı bağlantıyı ayırt edin: ziyaretçi ile Cloudflare arasındaki sertifika ve Cloudflare ile origin sunucu arasındaki sertifika aynı şey değildir. Burada özellikle Cloudflare Origin CA sertifikası, Cloudflare-origin bağlantısı içindir; proxy kapatılırsa tarayıcılar bu sertifikayı güvenilir bulmayabilir. Genel ziyaretçi erişimi için sunucuda kamuya açık bir sertifika kullanmak daha taşınabilir bir tercihtir.
Kurulumdan sonra HTTPS sayfası açılıyor ancak tarayıcı karma içerik uyarısı veriyorsa HTML, CSS, JavaScript, görsel ve font adreslerini de HTTPS kullanacak şekilde düzeltin. Sertifika kurulumu tek başına HTTP kaynaklarını otomatik olarak güvenli hâle getirmez.
Certbot gibi ACME istemcileri anahtar ve sertifika istemi oluşturma sürecini sizin için yönetebilir. Mevcut bir CSR kullanmak istiyorsanız istemcinin bunu destekleyip desteklemediğini ayrıca kontrol etmelisiniz.
Bu, kullandığınız sertifika otoritesinin ve doğrulama yönteminin desteğine bağlıdır. Bu rehberdeki -d alan adı örneğini IP adresine körlemesine çevirmeyin; sağlayıcının güncel IP sertifikası akışını ve istemci desteğini ayrı doğrulayın.
Alan adının sertifikada bulunmaması, sertifikanın süresinin dolması, ara sertifika zincirinin eksik olması veya sayfanın HTTP kaynakları yüklemesi olası nedenlerdir. Önce sertifikadaki hostname listesini ve web sunucusunun doğru sertifika dosyasını sunduğunu kontrol edin.
SSL adı yaygın olsa da güncel bağlantılar TLS protokolüyle korunur. Sertifika, tarayıcının
example.com alan adıyla gerçekten bağlantı kurduğunu doğrulamasını sağlar. Özel anahtar sunucuda gizli tutulur; sertifikanın kendisi ise ziyaretçilere sunulur.Başlamadan önce gerekli koşullar
Aşağıdaki koşullar Nginx ve HTTP-01 kullanan örnek içindir; DNS-01 aynı web/port koşullarını gerektirmez.
- Sertifika alacağınız alan adı DNS üzerinden doğru sunucuya yönlenmelidir. Örnekte
example.comvewww.example.comkullanılacaktır. - Sunucuda web sitesi çalışıyor olmalı ve HTTP için 80, HTTPS için 443 numaralı portlar erişilebilir olmalıdır.
- Sunucuda yönetici veya
sudoyetkisi bulunmalıdır. - Sertifikaya dahil edilecek her alan adı komutta ayrıca belirtilmelidir.
Paylaşımlı hostingde bu yetkilere sahip değilseniz komut çalıştırmak yerine hosting panelindeki otomatik SSL özelliğini kullanın.
VPS üzerinde Certbot ile sertifika oluşturma
Aşağıdaki en küçük örnek, Nginx üzerinde çalışan ve Certbot ile Nginx eklentisinin kurulumu tamamlanmış, geçerli Nginx yapılandırmasına sahip bir sunucu içindir. Mevcut yapılandırmayı koruyun; otomatik kurulum onu değiştirebilir. Apache kullanıyorsanız
--nginx yerine ilgili Apache eklentisini kullanmanız gerekir.- DNS kayıtlarının
example.comvewww.example.comiçin sunucuyu gösterdiğini doğrulayın. DNS değişikliği henüz yayılmadıysa alan adı doğrulaması başarısız olur. - Certbot'u işletim sisteminizin güvenilir paket kaynağından veya Certbot belgelerindeki yönteme göre kurun.
- Sertifikayı alın ve Nginx yapılandırmasına otomatik olarak uygulatın:
Bash:sudo certbot --nginx -d example.com -d www.example.com - Certbot alan adı kontrolünü tamamladığında, yönlendirme seçeneği sunulursa HTTP isteklerini HTTPS'e yönlendirmeyi seçin. Böylece
http://example.comistekleri güvenli adrese gider. - Tarayıcıda
https://example.comvehttps://www.example.comadreslerini açın. Sertifika uyarısı yoksa ve site doğru içerikle açılıyorsa kurulum tamamlanmıştır. - Yenileme mekanizmasını önceden test edin. Ayrıca kuruluma göre systemd timer/cron gibi gerçek otomatik çalıştırıcının etkin olduğunu doğrulayın; tek dry-run gelecekte çalışacağının garantisi değildir:
Bash:sudo certbot renew --dry-run
Başarılı ilk komut sonunda sertifikanın alındığını ve web sunucusu yapılandırmasının güncellendiğini belirten bir çıktı görürsünüz.
certonly kullanırsanız sertifika alınır fakat web sunucusuna kurulmaz; bunları web sunucusunun TLS yapılandırmasına ayrıca tanıtmanız gerekir.Doğrulama yöntemi nasıl seçilir?
Certbot, sertifikayı isteyen kişinin alan adını kontrol ettiğini kanıtlamak için bir doğrulama yöntemi kullanır. Normal web sitesi için HTTP-01 yöntemi çoğu zaman yeterlidir ve sunucunun 80 numaralı porttan erişilebilir olmasını gerektirir. Wildcard sertifika, örneğin
*.example.com, almak istiyorsanız DNS-01 yöntemi gerekir; bu yöntemde DNS sağlayıcısına özel bir doğrulama kaydı eklenir.Kararı şu şekilde verebilirsiniz:
| İhtiyaç | Uygun yöntem | Temel koşul |
|---|---|---|
| example.com ve www.example.com | HTTP-01 | Port 80 erişilebilir olmalı |
| Wildcard alt alan adları | DNS-01 | DNS kaydı ekleme yetkisi olmalı |
| Hosting paneli kullanımı | Panel otomasyonu | Sağlayıcı Let’s Encrypt desteklemeli |
Cloudflare kullanıyorsanız iki ayrı bağlantıyı ayırt edin: ziyaretçi ile Cloudflare arasındaki sertifika ve Cloudflare ile origin sunucu arasındaki sertifika aynı şey değildir. Burada özellikle Cloudflare Origin CA sertifikası, Cloudflare-origin bağlantısı içindir; proxy kapatılırsa tarayıcılar bu sertifikayı güvenilir bulmayabilir. Genel ziyaretçi erişimi için sunucuda kamuya açık bir sertifika kullanmak daha taşınabilir bir tercihtir.
Sık yapılan hatalar
- DNS'nin yanlış sunucuyu göstermesi: Alan adı başka IP'ye gidiyorsa Certbot doğru sunucuyu doğrulayamaz.
- Port 80'i tamamen kapatmak: HTTP-01 doğrulaması başarısız olur. Port 80'i açık bırakıp HTTPS'e yönlendirmek veya DNS-01 kullanmak gerekir.
- Sadece ana alan adını eklemek: Sertifika
example.comiçin alındıysawww.example.comotomatik olarak kapsanmayabilir. Her hostname'i-dile ekleyin. - Yenilemeyi kontrol etmemek: Sertifikalar süreli olduğundan otomatik yenilemenin çalıştığını
renew --dry-runile test edin. - Cloudflare Origin CA sertifikasını doğrudan ziyaretçiye sunmak: Bu sertifika origin bağlantısı içindir ve proxy devre dışı bırakıldığında tarayıcı uyarısı oluşturabilir.
Kurulumdan sonra HTTPS sayfası açılıyor ancak tarayıcı karma içerik uyarısı veriyorsa HTML, CSS, JavaScript, görsel ve font adreslerini de HTTPS kullanacak şekilde düzeltin. Sertifika kurulumu tek başına HTTP kaynaklarını otomatik olarak güvenli hâle getirmez.
Sık sorulan sorular
Sertifika oluşturmak için önce CSR hazırlamak gerekir mi?
Certbot gibi ACME istemcileri anahtar ve sertifika istemi oluşturma sürecini sizin için yönetebilir. Mevcut bir CSR kullanmak istiyorsanız istemcinin bunu destekleyip desteklemediğini ayrıca kontrol etmelisiniz.
IP adresi için SSL sertifikası alınabilir mi?
Bu, kullandığınız sertifika otoritesinin ve doğrulama yönteminin desteğine bağlıdır. Bu rehberdeki -d alan adı örneğini IP adresine körlemesine çevirmeyin; sağlayıcının güncel IP sertifikası akışını ve istemci desteğini ayrı doğrulayın.
Sertifika kurulduğu hâlde site neden güvensiz görünüyor?
Alan adının sertifikada bulunmaması, sertifikanın süresinin dolması, ara sertifika zincirinin eksik olması veya sayfanın HTTP kaynakları yüklemesi olası nedenlerdir. Önce sertifikadaki hostname listesini ve web sunucusunun doğru sertifika dosyasını sunduğunu kontrol edin.