SSL Sertifikası

Node.js CA Certificate Yapılandırması

Node.js kendi CA listesini kullanır; eksik ara sertifika ve özel CA hatalarını NODE_EXTRA_CA_CERTS ve https.Agent ile güvenle çözün.

Node.js, sistem deposunu değil kendi içine gömülü CA listesini kullanır. Bu yüzden tarayıcıda açılan bir adres Node uygulamasında hata verebilir. Tipik hata kodları UNABLE_TO_VERIFY_LEAF_SIGNATURE, UNABLE_TO_GET_ISSUER_CERT_LOCALLY, SELF_SIGNED_CERT_IN_CHAIN ve CERT_HAS_EXPIRED'tir.

Hata neden oluşur?

  • Bağlanılan sunucu ara sertifikayı göndermiyor.
  • Kurum içi veya özel CA'nın kökü Node'un listesinde yok.
  • Kurumsal proxy, trafiği kendi sertifikasıyla yeniden imzalıyor.
  • Kullanılan Node sürümü eski ve yeni kökleri içermiyor.

Çözüm 1: Ek CA dosyası tanıtmak

Tüm uygulama için ortam değişkeniyle ek kök ekleyebilirsiniz; bu, yerleşik listenin yerine geçmez, ona eklenir:

export NODE_EXTRA_CA_CERTS=/etc/ssl/kurum-ca.pem
node uygulama.js

Windows PowerShell'de: $env:NODE_EXTRA_CA_CERTS="C:\sertifikalar\kurum-ca.pem"

Çözüm 2: İstek bazında CA vermek

const https = require('https');
const fs = require('fs');

const agent = new https.Agent({
  ca: fs.readFileSync('/etc/ssl/kurum-ca.pem')
});

https.get('https://api.ornek.com', { agent }, (res) => {
  console.log(res.statusCode);
});

Dikkat: ca seçeneği verildiğinde yerleşik liste kullanılmaz; genel adreslere de bağlanacaksanız ikisini birleştirmeniz gerekir.

Çözüm 3: Sunucuyu düzeltmek

UNABLE_TO_VERIFY_LEAF_SIGNATURE genellikle eksik ara sertifika demektir. Sorunu istemciyi gevşeterek değil, sunucuya ara sertifikayı ekleyerek çözmek en doğrusudur. Durumu openssl s_client -showcerts veya SSL kontrol aracıyla doğrulayın.

Yapılmaması gereken

NODE_TLS_REJECT_UNAUTHORIZED=0 değişkeni tüm sertifika doğrulamasını kapatır ve bağlantıyı ortadaki adam saldırılarına açar; yalnızca yerel, geçici testlerde düşünülmelidir. Yeni bir sertifika için SSL sertifikaları sayfasına göz atabilirsiniz.

Bu makale faydalı oldu mu?

Makale Ara

Sertifika Doğrulama Hataları

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

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

Destek Talebi Aç