SSL Sertifikası

Node.js SSL API Client

Node.js yerleşik fetch ile küçük bir SSL API istemcisi: sınıf örneği, zaman aşımı, token yönetimi ve NODE_TLS_REJECT_UNAUTHORIZED uyarısı.

Node.js 18 ve sonrasında yerleşik fetch geldiği için sertifika API istemcisi için ek kütüphane şart değildir. Küçük bir sınıf ile kimlik, zaman aşımı ve hata işleme tek yerde toplanabilir.

Basit istemci

// sslclient.mjs
export class SslApiClient {
  constructor(baseUrl, token) {
    this.baseUrl = baseUrl;
    this.token = token;
  }

  async istek(yol, { method = 'GET', body } = {}) {
    const res = await fetch(`${this.baseUrl}${yol}`, {
      method,
      headers: {
        'Authorization': `Bearer ${this.token}`,
        'Content-Type': 'application/json',
      },
      body: body ? JSON.stringify(body) : undefined,
      signal: AbortSignal.timeout(30000),
    });
    if (!res.ok) {
      throw new Error(`API hatasi ${res.status}`);
    }
    return res.json();
  }

  siparisler() { return this.istek('/orders'); }
  durum(id) { return this.istek(`/orders/${id}`); }
}

Kullanım:

import { SslApiClient } from './sslclient.mjs';
const c = new SslApiClient('https://api.ornek-ca.example/v1', process.env.SSL_API_TOKEN);
console.log(await c.siparisler());

Dikkat edilecekler

  • Token'ı process.env üzerinden okuyun; .env dosyasını sürüm kontrolüne eklemeyin.
  • NODE_TLS_REJECT_UNAUTHORIZED=0 ayarını asla üretimde kullanmayın; TLS doğrulamasını kapatır.
  • 429 yanıtında Retry-After başlığına saygı gösterin.
  • Sertifika gibi hassas veri içeren gövdeleri günlüğe yazmayın.

Sertifika bitişi izleme

Node'un tls modülü ile bir sunucuya bağlanıp getPeerCertificate() çıktısındaki valid_to alanını okuyarak API'den bağımsız bir bitiş kontrolü yazabilirsiniz. Bunu zamanlanmış bir görevle çalıştırıp uyarı üretmek iyi bir ikinci güvenlik ağıdır.

Elle hızlı kontrol için SSL denetleyiciyi, ürünler için SSL sertifikaları sayfasını kullanabilirsiniz.

Yaygın sorunlar

  • Eski Node sürümlerinde fetch yoktur; Node 18 veya üzerini kullanın.
  • Yanıt JSON değilse res.json() hata verir; önce res.text() ile bakın.
  • Zaman aşımı koymazsanız askıda kalan istekler işlemi sonsuza kadar bekletebilir.

Bu makale faydalı oldu mu?

Makale Ara

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

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

Destek Talebi Aç