SSL Sertifikası

Node.js SSL: DEPTH_ZERO_SELF_SIGNED_CERT

DEPTH_ZERO_SELF_SIGNED_CERT, Node.js'in karşıdaki sertifikayı kendinden imzalı bulduğunu söyler. Geliştirmede güvenli yol ve üretimde kalıcı çözüm.

Node.js'te Error: self signed certificate ya da code: 'DEPTH_ZERO_SELF_SIGNED_CERT' hatası, bağlandığınız sunucunun sertifikasını herhangi bir CA'nın değil, sertifikanın kendisinin imzaladığını bildirir. "Depth zero" ifadesi sorunun zincirin en başındaki sunucu sertifikasında olduğunu belirtir.

Ne zaman ortaya çıkar

  • Test/geliştirme sunucusu openssl req -x509 ile üretilmiş sertifika kullanıyor.
  • Kurum içi bir hizmet kendi özel CA'sından imzalı sertifika kullanıyor.
  • TLS denetimi yapan bir proxy sertifikayı değiştirip kendi kök sertifikasıyla imzalıyor.
  • Üretim sunucusunda yanlışlıkla kurulum öncesi geçici sertifika kalmış.

Güvenli çözüm yolları

  1. Üretim: Herkese açık bir CA'dan alınmış sertifika kurun; hata kökünden kalkar ve istemcilerde ek ayar gerekmez. Seçenekler için SSL sertifikaları.
  2. Kurum içi hizmet: Kendi CA sertifikanızı istemciye tanıtın:
    NODE_EXTRA_CA_CERTS=/etc/kurum/kok-ca.pem node app.js
    
  3. Tek bir bağlantı için:
    const https = require('https');
    const fs = require('fs');
    const agent = new https.Agent({ ca: fs.readFileSync('kendinden-imzali.crt') });
    
    Burada sertifika dosyasını doğrudan güvenilir olarak vermiş olursunuz; yalnızca o sunucuya sabitlenir.
  4. Yerel geliştirmede mkcert gibi araçlarla yerel CA kurmak, doğrulamayı kapatmaktan daha güvenlidir.

Kaçınılacak kestirme

rejectUnauthorized: false veya NODE_TLS_REJECT_UNAUTHORIZED=0 tüm doğrulamayı kapatır; bu ayarı kodda bırakmak üretimde ciddi bir açık yaratır. Sertifikanızın durumunu SSL denetleme aracıyla doğrulayın.

Ek ipuçları

Test sertifikası üretirken subjectAltName alanını mutlaka ekleyin; yalnızca CN ile üretilen sertifikalar modern istemcilerde ad uyuşmazlığı hatasına yol açar. Sertifika geliştirme ortamından üretime geçerken yapılandırma dosyalarında ca veya rejectUnauthorized gibi geçici ayarların kalmadığını kod incelemesinde kontrol edin.

Bu makale faydalı oldu mu?

Makale Ara

Sunucu SSL Hataları

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç