Ana içeriğe geç

ACME / Let's Encrypt Entegrasyonu

Genel Bakış

ACME protokolü (Let's Encrypt ve diğer sertifika otoriteleri tarafından kullanılır) alan doğrulaması için DNS-01 doğrulamasını destekler. DNS-01, wildcard sertifikaları (*.example.com) destekleyen tek doğrulama türüdür ve hedef makinede bir HTTP sunucusu gerektirmez.

NexDNS, üç popüler ACME istemcisiyle yerel entegrasyonlar ve manuel DNS hook'larını destekleyen herhangi bir istemci için genel bir CLI hook sağlar.

Tüm ACME entegrasyonları, records.read ve records.write izinlerine sahip bir API jetonu gerektirir. nexdns.tech/settings/api-keys adresinden bir tane oluşturun.

acme.sh

acme.sh, saf kabuk tabanlı bir ACME istemcisidir. NexDNS, yerleşik DNS API sağlayıcısı olarak desteklenir.

Sertifika Düzenleme

export NEXDNS_Token="nxd_xxxxxxxxxxxxxxxxxxxx"
acme.sh --issue --dns dns_nexdns -d example.com -d '*.example.com'

Jeton ilk çalıştırmadan sonra ~/.acme.sh/account.conf dosyasına kaydedilir, bu nedenle yenilemeler için tekrar dışa aktarmanız gerekmez.

Yenileme

Yenilemeler cron aracılığıyla otomatik olarak gerçekleşir. Manuel yenilemeyi zorlamak için:

acme.sh --renew -d example.com

Lego ve Traefik

lego, Go tabanlı bir ACME istemcisidir ve aynı zamanda Traefik'in otomatik sertifika yönetimini destekler. NexDNS, DNS sağlayıcısı olarak desteklenir.

Bağımsız Kullanım

NEXDNS_API_TOKEN=nxd_xxx \
lego --dns nexdns \
    --domains example.com \
    --domains '*.example.com' \
    --email admin@example.com \
    run

Traefik Yapılandırması

NexDNS DNS doğrulama çözümleyicisini Traefik yapılandırmanıza ekleyin. Aşağıdaki docker-compose.yml örneği tipik bir kurulumu gösterir:

services:
  traefik:
    image: traefik:v3
    command:
      - "--certificatesresolvers.nexdns.acme.dnschallenge=true"
      - "--certificatesresolvers.nexdns.acme.dnschallenge.provider=nexdns"
      - "--certificatesresolvers.nexdns.acme.email=admin@example.com"
      - "--certificatesresolvers.nexdns.acme.storage=/letsencrypt/acme.json"
    environment:
      NEXDNS_API_TOKEN: "nxd_xxxxxxxxxxxxxxxxxxxx"
    volumes:
      - letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - "443:443"

volumes:
  letsencrypt:

Ardından çözümleyiciyi servis etiketlerinizde kullanın:

labels:
  - "traefik.http.routers.myapp.tls.certresolver=nexdns"
  - "traefik.http.routers.myapp.tls.domains[0].main=example.com"
  - "traefik.http.routers.myapp.tls.domains[0].sans=*.example.com"

Certbot istemcisi

certbot, resmi Let's Encrypt istemcisidir. Otomatik DNS-01 doğrulaması için NexDNS DNS kimlik doğrulama eklentisini kullanın.

Eklentiyi Kurma

pip install certbot-dns-nexdns

Kimlik Bilgileri Dosyası Oluşturma

API jetonunuzla ~/.nexdns/certbot-credentials.ini dosyasını oluşturun:

dns_nexdns_token = nxd_xxxxxxxxxxxxxxxxxxxx

Dosya izinlerini kısıtlayın:

chmod 600 ~/.nexdns/certbot-credentials.ini

Sertifika Düzenleme

certbot certonly \
    --authenticator dns-nexdns \
    --dns-nexdns-credentials ~/.nexdns/certbot-credentials.ini \
    -d '*.example.com'

Docker Kullanımı

docker run --rm \
    -v /etc/letsencrypt:/etc/letsencrypt \
    -v ~/.nexdns/certbot-credentials.ini:/credentials.ini:ro \
    certbot/dns-nexdns certonly \
        --authenticator dns-nexdns \
        --dns-nexdns-credentials /credentials.ini \
        -d '*.example.com'

CLI Hook entegrasyonu

ACME istemciniz manuel DNS hook'larını destekliyorsa, NexDNS CLI'yi bir hook betiği olarak kullanabilirsiniz. Bu, --manual-auth-hook ve --manual-cleanup-hook seçeneklerini sağlayan herhangi bir istemciyle çalışır (örn. manuel modda certbot).

certbot ile CLI Hook

certbot certonly --manual --preferred-challenges dns \
    --manual-auth-hook "nexdns acme hook --action create" \
    --manual-cleanup-hook "nexdns acme hook --action delete" \
    -d '*.example.com'

Hook, certbot tarafından ayarlanan CERTBOT_DOMAIN ve CERTBOT_VALIDATION ortam değişkenlerini okur ve _acme-challenge TXT kaydını otomatik olarak oluşturur veya kaldırır.

Hook'ları kullanmadan önce CLI kimlik doğrulaması yapılmış olmalıdır. nexdns auth token nxd_xxx komutunu çalıştırın veya NEXDNS_TOKEN ortam değişkenini ayarlayın.

Bu web sitesinin düzgün çalışmasını sağlamak ve deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bazı çerezler sitenin çalışması için zorunludur, diğerleri ise isteğe bağlıdır.

Tüm çerezleri kabul edebilir veya yalnızca zorunlu olanlarla sınırlayabilirsiniz. Ayrıntılar için Gizlilik Politikası ve Çerez Politikası sayfalarımızı inceleyebilirsiniz.