İçeriğe geç
0850 554 5439 [email protected]

Size nasıl yardımcı olabiliriz?

Rehberlerimizde ve eğitimlerimizde arama yapın ya da aşağıdaki kategorilere göz atın.

Gyro DNS ile Let's Encrypt joker sertifika: acme.sh, Certbot, Caddy, Traefik ve Kubernetes

71 görüntülenme Kullanım rehberi Son doğrulama: Markdown
Bu rehberde ne öğreneceksinizAlan adınızın DNS'i Gyro DNS'teyse Let's Encrypt sertifikasını, *.ornek.com joker sertifikası dahil, DNS doğrulamasıyla (DNS-01) tamamen otomatik almayı ve yenilemeyi; bunun için yalnız doğrulama kaydı yazabilen kısıtlı ACME anahtarı oluşturmayı.
Süre10 dakika
Kimin içinKendi sunucusunda, Docker ya da Kubernetes ortamında HTTPS sertifikası yöneten geliştiriciler ve sistem yöneticileri.
GerekenlerGyro DNS hizmeti (Ücretsiz ya da Pro) ve bu hizmette yayında olan bir zone (Alan adını Gyro DNS'e taşıma).

1. Neden DNS doğrulaması ve neden ayrı bir anahtar?

Let's Encrypt, sertifika vermeden önce alan adının size ait olduğunu doğrular. Joker sertifika (*.ornek.com) yalnız DNS-01 yöntemiyle alınabilir: sertifika aracınız _acme-challenge.ornek.com adına geçici bir TXT kaydı yazar, Let's Encrypt bu kaydı okur, iş bitince kayıt silinir. DNS doğrulamasının başka artıları da vardır: sunucunun internete 80 numaralı portu açması gerekmez, iç ağdaki ya da henüz yayında olmayan sunuculara da sertifika alınabilir.

Bu kaydı yazmak için sertifika aracının DNS'inize erişmesi gerekir. Tam yetkili bir API anahtarını her sunucuya koymak risklidir; bu yüzden Gyro DNS'te yalnız bu iş için ACME anahtarı vardır:

ACME anahtarı ne yapabilir? Ne yapamaz?
_acme-challenge ile başlayan adlara TXT değeri eklemek ve silmek (TTL 60 sn) Zone'larınızı okumak, başka kayıtları (A, MX, CNAME...) değiştirmek ya da silmek
Yalnız seçtiğiniz zone'larda çalışmak (isteğe bağlı) Diğer hizmetlerinize, faturalara, hesap bilgilerinize erişmek
Yalnız belirttiğiniz IP adreslerinden kullanılmak (isteğe bağlı) Yeni anahtar oluşturmak

Anahtar sızsa bile en kötü ihtimalle doğrulama kaydı yazılabilir; panelden silmeniz yeterlidir. Her sunucu ya da küme için ayrı anahtar oluşturmanızı öneririz.

Not

Hosting (cPanel) hesabınızdan gelen salt okunur zone'larda ACME anahtarı kullanılamaz; o alan adlarında cPanel'in kendi ücretsiz SSL'i (AutoSSL) çalışır. ACME anahtarı, Gyro DNS'te eklediğiniz zone'lar içindir.

2. ACME anahtarı oluşturun

  1. Müşteri panelinde Hizmetlerim → Gyro DNS hizmetinizi açın ve Yönetim sekmesine geçin.
  2. Soldaki menüde Gelişmiş → ACME / Let's Encrypt sayfasını seçin.
  3. Ad alanına anahtarı tanıyacağınız bir ad yazın (örneğin web-01 ya da k8s-prod).
  4. Zone'lar listesinden anahtarın çalışacağı zone'ları seçin. Hiçbirini seçmezseniz anahtar bu hizmetteki tüm zone'larda çalışır.
  5. İsterseniz İzinli IP alanına sertifikayı alacak sunucunun IP adresini yazın (birden çoksa virgülle ayırın).
  6. Anahtar oluştur düğmesine basın. Anahtar (wck_...) yalnız bu anda gösterilir; Kopyala ile alın ve güvenli bir yere kaydedin.
ACME / Let's Encrypt: anahtarı burada oluşturur, zone ve IP ile sınırlar, sızan anahtarı tek tıkla silersiniz. Altta her araç için hazır komutlar vardır.

Aynı işlemi komut satırından ya da Terraform ile de yapabilirsiniz:

bash
gyro dns acme-key create <hizmet-no> --name web-01 --zones ornek.com
gyro dns acme-key list <hizmet-no>
hcl
resource "gyro_dns_acme_key" "web" {
  service_id = 12345
  name       = "web-01"
  zones      = ["ornek.com"]
}

Anahtarı silmek için tablodaki çöp kutusu simgesine basın ya da gyro dns acme-key delete <hizmet-no> <anahtar-no> çalıştırın; anahtar hemen geçersiz olur.

3. acme.sh

acme.sh kuruluysa Gyro DNS eklentisini indirip anahtarı verin:

bash
curl -fsSL -o ~/.acme.sh/dnsapi/dns_gyro.sh https://raw.githubusercontent.com/Gyro-Hosting/gyro-acme/main/acme.sh/dns_gyro.sh
export GYRO_Token="wck_..."
acme.sh --issue --dns dns_gyro -d ornek.com -d '*.ornek.com'

Eklenti kaydı ekledikten sonra iki ad sunucumuzun da kaydı yayınlamasını bekler (genellikle bir dakikadan kısa), sonra Let's Encrypt'e "hazır" der. Anahtar acme.sh ayarlarına kaydedilir; yenilemeler acme.sh'ın kendi zamanlayıcısıyla otomatik yapılır. Sertifikayı web sunucunuza kopyalamak için acme.sh --install-cert komutunu kullanın.

4. Certbot

Eklentiyi Certbot'un kurulu olduğu Python ortamına kurun:

bash
pip install "certbot-dns-gyro @ git+https://github.com/Gyro-Hosting/[email protected]#subdirectory=certbot-dns-gyro"

Anahtarı yalnız root'un okuyabileceği bir dosyaya yazın:

bash
printf 'dns_gyro_token = wck_...\n' > /etc/letsencrypt/gyro.ini
chmod 600 /etc/letsencrypt/gyro.ini
certbot certonly --authenticator dns-gyro --dns-gyro-credentials /etc/letsencrypt/gyro.ini -d ornek.com -d '*.ornek.com'

Certbot'u snap ile kurduysanız bu eklenti snap içine kurulamaz; pip ile kurulmuş Certbot ya da acme.sh kullanın.

5. Caddy

Caddy'yi Gyro DNS modülüyle derleyin ve Caddyfile'da dns gyro kullanın:

bash
xcaddy build --with github.com/Gyro-Hosting/caddy-dns-gyro
text
*.ornek.com, ornek.com {
	tls {
		dns gyro {env.GYRO_TOKEN}
	}
	reverse_proxy 127.0.0.1:8080
}

GYRO_TOKEN ortam değişkenine ACME anahtarınızı verin. Caddy sertifikayı alır, yeniler ve süresi dolmadan değiştirir.

6. Traefik ve lego

Traefik, exec DNS sağlayıcısıyla küçük gyro-acme-exec programını çalıştırır. Programı libdns-gyro sürümlerinden indirip konteynere bağlayın:

yaml
# traefik.yml
certificatesResolvers:
  le:
    acme:
      email: [email protected]
      storage: /letsencrypt/acme.json
      dnsChallenge:
        provider: exec

Traefik konteynerinin ortam değişkenleri:

text
EXEC_PATH=/usr/local/bin/gyro-acme-exec
GYRO_TOKEN=wck_...
EXEC_PROPAGATION_TIMEOUT=300
EXEC_POLLING_INTERVAL=10

Yönlendiricide (router) tls.certresolver=le ve tls.domains[0].main=ornek.com, tls.domains[0].sans=*.ornek.com ayarlayın. Aynı program lego komut satırı aracıyla da çalışır: EXEC_PATH=./gyro-acme-exec GYRO_TOKEN=wck_... lego --dns exec -d ornek.com -d '*.ornek.com' --email [email protected] run.

7. Kubernetes (cert-manager)

cert-manager kuruluysa Gyro DNS webhook'unu Helm ile ekleyin, anahtarı Secret olarak verin ve bir ClusterIssuer tanımlayın:

bash
helm install cert-manager-webhook-gyro oci://ghcr.io/gyro-hosting/charts/cert-manager-webhook-gyro --namespace cert-manager
kubectl -n cert-manager create secret generic gyro-acme --from-literal=token='wck_...'
yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-gyro
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: [email protected]
    privateKeySecretRef:
      name: letsencrypt-gyro-hesap
    solvers:
      - dns01:
          webhook:
            groupName: acme.gyrohosting.com
            solverName: gyro
            config:
              tokenSecretRef:
                name: gyro-acme
                key: token

Sonra Certificate kaynağında dnsNames: ["ornek.com", "*.ornek.com"] ve issuerRef: {name: letsencrypt-gyro, kind: ClusterIssuer} kullanın. Webhook yalnız Helm'de belirttiğiniz namespace'lerdeki Secret'ları okuyabilir ve root olmayan kullanıcıyla çalışır.

8. Başka araçlar: doğrudan API

Kullandığınız araç listede yoksa üç basit çağrı yeterlidir. Hizmet ve zone kayıt adından bulunur; yalnız ACME anahtarı gerekir:

bash
API=https://www.gyrohosting.com/api/v1/client
# ekle
curl -X POST $API/cloud/dns/acme-challenge -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" -d '{"name":"_acme-challenge.ornek.com","value":"<DEGER>"}'
# hazır mı? (iki ad sunucusu da yayınlıyorsa "ready": true)
curl "$API/cloud/dns/acme-challenge?name=_acme-challenge.ornek.com&value=<DEGER>" -H "Authorization: Bearer $GYRO_TOKEN"
# sil
curl -X DELETE "$API/cloud/dns/acme-challenge?name=_acme-challenge.ornek.com&value=<DEGER>" -H "Authorization: Bearer $GYRO_TOKEN"

Ekleme yalnız verdiğiniz değeri ekler, aynı addaki diğer değerler kalır; bu sayede ornek.com ve *.ornek.com doğrulamaları aynı anda yapılabilir. Komut satırı karşılıkları: gyro dns acme-challenge add|status|remove. Tüm ayrıntılar: Geliştirici belgeleri.

9. Sık sorulan sorular

Joker sertifika için hangi adları istemeliyim?

Hem ornek.com hem *.ornek.com isteyin. Joker sertifika yalnız bir alt düzeyi kapsar: *.ornek.com, www.ornek.com ve api.ornek.com için geçerlidir ama ornek.com ya da a.b.ornek.com için geçerli değildir.

Doğrulama ne kadar sürer?

Kayıt yazıldıktan sonra iki ad sunucumuz da genellikle bir dakikadan kısa sürede yayınlar. Eklentiler bunu kendileri bekler; tüm işlem çoğunlukla 1-2 dakikada biter.

ACME anahtarım çalınırsa ne olur?

Anahtar yalnız _acme-challenge TXT kaydı yazabilir; sitenizin, e-postanızın kayıtlarına ya da hesabınıza dokunamaz. Yine de panelden silip yenisini oluşturun. Anahtarı IP ile sınırlarsanız başka yerden hiç kullanılamaz.

"zone_not_allowed" ya da "zone_not_found" hatası alıyorum. Alan adı bu hizmette yayında bir zone değilse (bekleyen, başka hizmette ya da hosting zone'u ise) ya da anahtar başka zone'lara sınırlıysa bu hatalar döner. Anahtarın zone listesini panelde kontrol edin.

Sertifika süresi dolmadan yenilenir mi?

Evet. acme.sh, Certbot, Caddy, Traefik ve cert-manager sertifikayı süresinin son haftalarında kendiliğinden yeniler; her yenilemede aynı ACME anahtarı kullanılır.

Let's Encrypt dışında bir sertifika sağlayıcısıyla da çalışır mı?

Evet. DNS-01 standart bir yöntemdir; ZeroSSL, Google Trust Services ya da kendi ACME sunucunuz gibi her ACME uyumlu sağlayıcıyla aynı anahtar kullanılabilir.

Biliyor muydunuz?

ACME anahtarlarını Terraform ile oluşturup doğrudan Kubernetes Secret'ına aktarabilirsiniz: gyro_dns_acme_key kaynağının token alanı yalnız oluşturma anında okunur ve state içinde gizli tutulur. Ayrıntı: Gyro DNS'i API, CLI ve Terraform ile yönetin.

Sıradaki adım

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.