Ana içeriğe geç

Kesinti Yaşamadan VPS'ye SSL Nasıl Kurulur

· 5 dakikalık okuma
Customer Care Engineer

9 Kasım 2026'da yayımlandı

Kesinti Yaşamadan VPS'ye SSL Nasıl Kurulur?

VPS'ye güvenli bir şekilde SSL kurmak için önce alan adınızın VPS'yi gösterdiğini, 80 ve 443 numaralı bağlantı noktalarına erişilebildiğini ve web sunucusunun doğru siteyi zaten sunduğunu doğrulayın. SSL kurulumu genellikle hızlıdır. Soruna yol açan hatalar neredeyse her zaman DNS, güvenlik duvarı kuralları veya beklenmedik bir konumu gösteren sanal ana makine yapılandırmasıyla ilgilidir.

Geçerli bir sertifika, ziyaretçi ile uygulamanız arasındaki trafiği şifreler. Ayrıca tarayıcıdaki kilit simgesini etkinleştirir, oturum açma oturumlarını ve ödeme formlarını korur ve web siteniz çalışma fırsatı bile bulamadan müşterileri uzaklaştıran uyarı sayfasını önler. Bir e-ticaret sitesi, SaaS kontrol paneli, ajans müşterisinin sitesi veya işletme posta kutusu portalı için bu, temel bir üretim ortamı güvenlik uygulamasıdır.

VPS'ye SSL Kurmadan Önce Şu Temel Noktaları Kontrol Edin​

Önce DNS kaydını kontrol edin. Alan adınızın A kaydı, VPS'nin genel IPv4 adresine çözümlenmelidir. IPv6 kullanıyorsanız AAAA kaydı da aynı sunucuyu göstermelidir. Unutulmuş bir AAAA kaydı, sık karşılaşılan küçük bir sorundur: bazı ziyaretçiler yeni sunucuya ulaşırken diğerleri eski sunucuya ulaşır ve sertifika uyuşmazlığıyla karşılaşır.

Ardından, gelen TCP 80 ve 443 numaralı bağlantı noktalarının önemli olan her iki yerde de açık olduğundan emin olun: VPS güvenlik duvarında ve sağlayıcı düzeyindeki güvenlik duvarında. Certbot'un yaygın HTTP doğrulaması için 80 numaralı bağlantı noktasının geçici veya kalıcı olarak kullanılabilir olması gerekir. Web sunucunuz, bu bağlantı noktasında alan adına yönelik isteklere yanıt vermelidir.

Herhangi bir şeyi değiştirmeden önce web sunucusunu ve işletim sistemini de belirlemelisiniz. Aşağıdaki komutlarda Nginx veya Apache kullanan Ubuntu ya da Debian varsayılmıştır. Aynı sertifika kavramları AlmaLinux, Rocky Linux ve diğer dağıtımlar için de geçerlidir; ancak paket adları ve hizmet komutları farklı olabilir.

Önce web sunucusu yapılandırmanızın yedeğini alın. Bir VPS anlık görüntüsü veya `/etc/nginx/` ya da `/etc/apache2/` yedeği, temiz bir geri alma noktası sağlar. Bu gösterişli bir iş değil, yalnızca iyi bir işletim uygulamasıdır. Gelecekteki siz, gece 2'de buna minnettar kalacak.

Doğru Sertifika Yöntemini Seçin​

Çoğu web sitesi için ücretsiz Let’s Encrypt sertifikası mantıklı bir seçimdir. Ticari sertifikalarla aynı aktarım şifrelemesini sağlar ve standart web siteleri, API'ler ve kontrol panelleri için uygundur. Sertifika 90 gün geçerlidir; bu nedenle otomatik yenileme, kurulumun isteğe bağlı bir eklentisi değil, ayrılmaz bir parçasıdır.

Kuruluşunuzun belirli bir doğrulama düzeyine, garanti koşullarına, belirli bir sertifika yetkilisine veya yönetilen bir tedarik sürecine ihtiyaç duyması durumunda ücretli bir sertifika uygun olabilir. Sertifika imzalama isteği oluşturmanız, verilen dosyaları almanız ve sertifika zincirini elle kurmanız gerektiğinden kurulum adımları biraz farklıdır.

Uygulamanız Cloudflare, bir yük dengeleyici veya başka bir ters vekil sunucu arkasında çalışıyorsa TLS'nin nerede sonlandırılacağına karar verin. Vekil sunucuda bir sertifikaya, vekil sunucu ile VPS arasında da başka bir sertifikaya ihtiyacınız olabilir. Turuncu bulut simgesinin veya yük dengeleyicinin kaynak sunucu şifrelemesi ihtiyacını ortadan kaldırdığını varsaymayın. Bu, güvenlik moduna bağlıdır; ancak uçtan uca şifreleme genellikle üretim ortamı için doğru yapılandırmadır.

Certbot ile Let’s Encrypt Sertifikası Kurun​

Ubuntu veya Debian'da paket bilgilerini güncelleyin ve web sunucunuza uygun eklentiyle Certbot'u kurun. Nginx için şunu kullanın:

```bash sudo apt update sudo apt install certbot python3-certbot-nginx ```

Apache için bunun yerine Apache eklentisini kurun:

```bash sudo apt update sudo apt install certbot python3-certbot-apache ```

Certbot'u çalıştırmadan önce web sunucusu yapılandırmasını sınayın. Nginx için:

```bash sudo nginx -t ```

Apache için:

```bash sudo apachectl configtest ```

Devam etmeden önce bildirilen hataları düzeltin. Sertifika isteği başarılı olabilir, ancak yeniden yükleme başarısız olursa sertifika diskte bulunmasına rağmen ziyaretçiler için etkin olmayabilir. Günlükler artık aynı şeyi söylüyor; o yüzden yeni bir değişken eklemeden önce onları okuyun.

Nginx sitesi için sertifikayı isteyin ve Certbot'un sunucu bloğunu güncellemesine izin verin:

```bash sudo certbot --nginx -d example.com -d www.example.com ```

Apache için şunu çalıştırın:

```bash sudo certbot --apache -d example.com -d www.example.com ```

`example.com` yerine gerçek alan adınızı yazın. `www` ifadesini yalnızca DNS'de mevcutsa ve web sunucusunda yapılandırılmışsa ekleyin. İstemler sırasında çalışan bir e-posta adresi girin, koşulları kabul edin ve tüm HTTP trafiğinin HTTPS'ye yönlendirilmesini istiyorsanız yönlendirme seçeneğini belirleyin. Çoğu durumda yönlendirme doğru seçimdir. Bu, ziyaretçilerin aynı sayfanın şifrelenmemiş sürümüne ulaşmasını önler.

Certbot sertifikayı alır, yolları sunucu yapılandırmasına ekler ve ilgili hizmeti yeniden yükler. Mevcut HTTP istekleri normal şekilde tamamlanabilir ve standart bir yeniden yükleme genellikle kayda değer bir kesintiye neden olmaz. Yine de uygulamanızda karmaşık bir vekil sunucu yapılandırması veya özel yeniden yazma kuralları varsa işlemi trafiğin daha sakin olduğu bir zamanda yapın.

Ticari SSL Sertifikasını Elle Kurun​

Bir sertifika satın aldıysanız, VPS'de özel anahtar ve sertifika imzalama isteği oluşturun. Özel anahtarı sunucuda tutun; asla e-postayla göndermeyin veya bir destek kaydına eklemeyin.

```bash sudo openssl req -new -newkey rsa:2048 -nodes \ -keyout /etc/ssl/private/example.com.key \ -out /etc/ssl/certs/example.com.csr ```

Sertifika sağlayıcınız bir sunucu sertifikası ve bir veya daha fazla ara sertifika verecektir. Sağlayıcınızın gerektirmesi durumunda ara sertifikaları birleştirerek tam zinciri oluşturun. Nginx'te sunucu bloğunda genellikle şu yönergeler bulunmalıdır:

```nginx listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/ssl/certs/example.com.fullchain.pem; ssl_certificate_key /etc/ssl/private/example.com.key; ```

Apache, HTTPS sanal ana makinesinin içinde eşdeğer `SSLCertificateFile` ve `SSLCertificateKeyFile` yönergelerini kullanır. Dosyaların tam yerleşimi dağıtıma ve kontrol paneline göre değişebilir; bu nedenle yolları doğrulamadan kopyalayıp yapıştırmayın. Sahipliği ve izinleri de doğrulayın. Özel anahtar normalde yalnızca root tarafından ve gerektiğinde hizmet hesabı tarafından okunabilmelidir.

Yapılandırmayı sınayın, ardından mümkün olduğunda hizmeti yeniden başlatmak yerine yeniden yükleyin:

```bash sudo nginx -t && sudo systemctl reload nginx ```

Yeniden yükleme, yeni yapılandırmayı uygularken etkin çalışan süreçlerini korur. Kullanılabiliyorsa en sorunsuz seçenektir.

Sertifikayı ve Yönlendirme Davranışını Doğrulayın​

Alan adınızı gizli bir tarayıcı penceresinde `https://` kullanarak açın. Görüntülenen alan adının sertifikayla eşleştiğini ve tarayıcının bağlantının geçerli olduğunu bildirdiğini kontrol edin. Ardından HTTP sürümünü sınayın ve HTTPS'ye yönlendirildiğini doğrulayın.

Yanıt başlıklarını VPS'den veya başka bir terminalden inceleyebilirsiniz:

```bash curl -I http://example.com curl -I https://example.com ```

HTTP isteği, HTTPS adresine 301 veya 308 yönlendirmesi döndürmelidir. Uygulamanıza bağlı olarak HTTPS isteği, genellikle 200, 301 veya 302 olan beklenen durum kodunu döndürmelidir.

Sertifikayı doğrudan da inceleyin:

```bash sudo certbot certificates ```

Ticari bir sertifikada son kullanma tarihini ve veren kuruluşun bilgilerini kontrol etmek için OpenSSL kullanın:

```bash openssl x509 -in /etc/ssl/certs/example.com.fullchain.pem -noout -dates -issuer -subject ```

Kilit simgesini görmekle yetinmeyin. Komut dosyaları, görseller, yazı tipleri veya API çağrıları `http://` URL'leriyle yükleniyorsa karma içerik sayfaları yine de etkileyebilir. Tarayıcının geliştirici araçları bu uyarıları gösterir. Sabit kodlanmış URL'leri, uygulama ortam değişkenlerini ve CDN veya varlık ayarlarını güncelleyin.

Yenilemeyi İzlenen Bir Göreve Dönüştürün​

Let’s Encrypt sertifikalarının 90 gün dolmadan yenilenmesi gerekir. Modern Certbot paketleri genellikle bir systemd zamanlayıcısını otomatik olarak kurar; ancak sessiz çalışan bir sunucuya güvenmek yerine bunu doğrulayın.

```bash sudo systemctl list-timers | grep certbot sudo certbot renew --dry-run ```

Anlamlı sınama, deneme çalıştırmasıdır. Bu işlem, VPS'nin gelecekteki doğrulamayı tamamlayabildiğini ve yenilemeden sonra web sunucusunu yeniden yükleyebildiğini doğrular. Başarısız olursa mevcut sertifikanın süresi dolmadan sorunu çözün.

Ticari sertifikalarda son kullanma tarihini çok önceden takviminize ekleyin. Sertifika sağlayıcınız veya yönetim platformunuz otomasyonu desteklemediği sürece yenileme işlemi çoğunlukla elle yapılır. Mümkün olduğunda sertifika süresi dolma izleme ekleyin. Fark edilmeden süresi dolan geçerli bir sertifika da kesintiye neden olur; tek fark, tarayıcı hatasının son derece resmî görünmesidir.

Bu tür yinelenen riskler, özellikle bir VPS'de birden fazla müşteri alan adı veya üretim hizmeti barındırıldığında, kodu.cloud'daki yönetilen operasyonel destek ve izleme sayesinde azaltılabilir. Amaç basit: sertifikalar sessizce yenilenmeli ve ekibinizin bunları her üç ayda bir hatırlaması gerekmemelidir.

SSL Kurulumundan Sonra Sık Karşılaşılan Sorunlar​

Sertifika uyuşmazlığı genellikle isteğin yanlış VPS'ye ulaştığı, yanlış sanal ana makinenin varsayılan olarak kullanıldığı veya sertifika isteğinde `www` gibi bir ana makine adının atlandığı anlamına gelir. Önce DNS'yi kontrol edin, ardından web sunucusundaki yapılandırılmış sunucu adlarını inceleyin.

Doğrulama hatası genellikle 80 numaralı bağlantı noktasına, DNS yayılımına veya vekil sunucu yapılandırmasına işaret eder. Alan adı bir CDN kullanıyorsa DNS kayıtlarının ve vekil sunucu modunun seçtiğiniz doğrulama yöntemine izin verdiğinden emin olun. DNS sorgulamasıyla doğrulama, joker karakterli sertifikalar için genellikle daha uygundur; ancak DNS API erişimi veya elle DNS kaydı oluşturma süreci gerektirir.

HTTPS'yi zorunlu kıldıktan sonra web sitesi bir yönlendirme döngüsüne girerse uygulamadaki, Nginx veya Apache'deki ve ters vekil sunucudaki çakışan yönlendirmeleri kontrol edin. Vekil sunucu arkasındaki uygulamaların, özgün isteğin HTTPS olduğunu algılaması için güvenilir bir iletilen başlık ayarına ihtiyacı olabilir. Böyle bir durumda DNS düzeni pek iç açıcı olmaz; ancak yönlendirmelerin sorumluluğunu üstlenen tek bir yer belirlendiğinde sorun kontrol altına alınır.

Sertifikayı, web sunucusu yapılandırmasını ve yenileme kontrollerini aynı operasyonel rutinin parçası hâline getirin. Doğru kurulmuş bir SSL sertifikası, var olan, doğrulanmış ve ilgi beklemeyen; yani sıkıcı bir altyapı bileşenine dönüşmelidir.

Andres Saar Müşteri Destek Mühendisi