Alan Adı & DNS

    IDN ve Türkçe Karakterli Alan Adları

    Türkçe karakterli alan adlarını mümkün kılan IDN ve punycode sisteminin işleyişi.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Alan adı sistemi (DNS) doğduğunda tek bildiği alfabe, İngilizcenin standart harfleri, rakamlar ve tireydi. Yani a-z, 0-9 ve - karakterleri. Bu "LDH" (letters, digits, hyphen) kümesi dışında hiçbir karakter, hele ki ç, ş, ğ, ı, ö, ü gibi Türkçeye özgü harfler, bir alan adının içinde doğrudan yer alamıyordu. Oysa dünyanın büyük bölümü Latin alfabesinin bu dar kesitiyle yazmaz; Türkçe, Almanca, Arapça, Çince ve daha yüzlerce dil kendi karakterlerini kullanır. Bir kullanıcının markasını tam olarak, aksanlarıyla birlikte bir alan adında görmek istemesi son derece doğaldır.

    İşte bu boşluğu kapatmak için IDN (Internationalized Domain Names — Uluslararası Alan Adları) geliştirildi. IDN, çiçeksepeti.com veya öğretmenim.com.tr gibi yerel karakterli alan adlarının kaydedilip kullanılmasını mümkün kılan bir standarttır. Ancak burada kritik bir ayrıntı vardır: DNS altyapısı hâlâ yalnızca ASCII karakterlerini "anlar". IDN, Türkçe harfleri sihirli bir şekilde DNS'e kabul ettirmez; onları arka planda punycode adı verilen bir kodlamayla ASCII'ye dönüştürerek çalışır. Bu yazıda IDN'in ne olduğunu, punycode'un xn-- önekiyle nasıl çalıştığını, Türkçe karakterli bir alan adını nasıl alacağınızı, tarayıcıda nasıl göründüğünü ve pratikte karşınıza çıkacak homograf ve e-posta uyumluluğu sorunlarını kıdemli bir yöneticinin gözünden anlatıyoruz.

    IDN Nedir ve Neden Ortaya Çıktı?#

    IDN, standart ASCII dışındaki Unicode karakterlerini içeren alan adlarına verilen genel addır. Teknik olarak IDN'yi bir "yeni alan adı türü" gibi düşünmek yanlış olur; DNS'in kendisi değişmemiştir. Değişen şey, tarayıcı ve uygulama katmanında bir çeviri adımının eklenmesidir. Kullanıcı adres çubuğuna türkçe.com yazdığında, tarayıcı bu ismi DNS sorgusuna göndermeden önce ASCII karşılığına çevirir.

    IDN standartlaşması IETF tarafından iki temel belge kümesiyle tanımlandı: önce 2003'te IDNA2003, ardından güncellenmiş kurallarla IDNA2008. Bu standartlar üç şeyi belirler: hangi Unicode karakterlerinin bir alan adında geçerli olduğunu, bu karakterlerin nasıl normalleştirileceğini (küçük harfe indirme, birleşik/ayrık formların standartlaştırılması) ve nasıl ASCII'ye kodlanacağını. Türkiye'de .tr uzantı ailesi de IDN'yi destekler; yani .com.tr altında Türkçe karakterli tesciller mümkündür. Alan adı sisteminin genel mantığını daha temelden görmek isterseniz alan adı nedir yazımıza göz atabilirsiniz.

    Neden bu kadar dolambaçlı bir yol izlendiği sorusunun cevabı geriye dönük uyumluluktur. İnternetin omurgasındaki milyonlarca DNS sunucusunu, e-posta sunucusunu ve eski yazılımı bir gecede Unicode'a geçirmek imkânsızdı. Bunun yerine, "isim çözümlemesi hâlâ ASCII üzerinden yürüsün, Unicode sadece kullanıcıya gösterilen katmanda yaşasın" yaklaşımı benimsendi. Bu tasarım tercihi IDN'in hem en güçlü hem de en sancılı yanını oluşturur.

    Punycode ve xn-- Kodlaması Nasıl Çalışır?#

    Punycode, Unicode dizgilerini yalnızca ASCII harf, rakam ve tire kullanarak geri döndürülebilir biçimde temsil eden bir algoritmadır. Bir alan adı etiketinde Unicode karakter bulunduğunda, o etiket xn-- önekiyle başlayan bir ASCII dizgeye dönüştürülür. Örneğin münih kelimesi punycode'da xn--mnih-0ra gibi bir karşılığa sahip olur. Bu xn-- öneki, "bu etiket aslında bir IDN'dir, çöz ve Unicode olarak göster" anlamına gelen evrensel bir işarettir.

    İşleyişi somutlaştıralım. Diyelim ki çiçek.com adını aldınız. Ağ katmanında olan biten şudur: tarayıcı çiçek etiketini punycode'a çevirir, çiçek.com DNS'te xn--ie1a5g.com gibi bir isme dönüşür ve tüm A/AAAA sorguları bu ASCII isim üzerinden yapılır. DNS sunucusu, kayıt dosyanız, TLS sertifikanız — hepsi aslında xn-- formunu görür. Komut satırında bu dönüşümü gözlemleyebilirsiniz:

    # idn2 aracı ile Unicode'dan punycode'a çevirme
    idn2 "çiçek.com"
    # çıktı: xn--iek-... .com biçiminde ASCII karşılık
    
    # ters yön: punycode'dan Unicode'a
    idn2 --decode "xn--iek-loa.com"
    
    # DNS sorgusunu her zaman ASCII form üzerinden yaparsınız
    dig xn--iek-loa.com A +short
    

    Punycode'un birkaç yapısal özelliği vardır. Birincisi geri döndürülebilir olmasıdır; kodlama kayıpsızdır, yani her Unicode isim tek bir ASCII karşılığa ve her xn-- dizgesi tek bir Unicode isme çözülür. İkincisi, sadece ASCII olmayan karakter içeren etiketlerin dönüştürülmesidir; türkçe.com.tr adında com ve tr etiketleri zaten ASCII olduğu için dokunulmaz, yalnızca türkçe etiketi xn--... olur. Üçüncüsü, punycode formunun okunması insan için imkânsıza yakındır — ve az sonra göreceğiniz gibi bu, hem bir güvenlik önlemi hem de bir güvenlik riskidir.

    Aşağıdaki tablo aynı ismin üç farklı katmandaki görünümünü özetler:

    KatmanGörünen değerAçıklama
    Kullanıcı (adres çubuğu)çiçek.comİnsanın gördüğü, Unicode form
    DNS / kayıt dosyasıxn--iek-loa.comMakinenin çözdüğü, ASCII form
    TLS sertifikası CN/SANxn--iek-loa.comSertifika da punycode'u içerir

    Türkçe Karakterli Bir Alan Adı Nasıl Alınır?#

    Türkçe karakterli bir alan adı almak, teknik olarak sıradan bir alan adı almaktan farklı değildir; farkı yaratan, uzantının IDN'i destekleyip desteklemediği ve hangi karakterlerin izinli olduğudur. Süreç genel hatlarıyla şöyle işler. Önce almak istediğiniz Unicode ismi belirlersiniz, örneğin köşküm.com. Ardından kayıt paneli üzerinden bu ismi Türkçe karakterleriyle sorgularsınız. Kayıt kuruluşu (registrar) ismi arka planda punycode'a çevirerek xn--... formuyla registry'ye tescil eder, ancak size panelde her zaman okunur Unicode formu gösterir.

    Dikkat edilmesi gereken en önemli nokta, her uzantının kendi izinli karakter tablosuna sahip olmasıdır. .com ve .net altında Türkçe karakterler dahil geniş bir Latin karakter kümesi kabul edilir. .com.tr gibi .tr uzantıları Türk diline uygun karakter setini destekler. Bir uzantı, karışıklığı önlemek için tek bir etiket içinde farklı yazı sistemlerini karıştırmayı (örneğin Latin ve Kiril harflerini aynı etikette birleştirmeyi) genellikle reddeder. Bu yüzden bir isim bir uzantıda geçerliyken diğerinde reddedilebilir. .com.tr özelindeki başvuru ve belge süreçleri için com.tr alan adı alma rehberimize bakabilirsiniz.

    Pratik bir öneri: Türkçe karakterli ismi kaydederken ASCII eşdeğerini de kaydetmek neredeyse her zaman doğru karardır. Yani köşküm.com alıyorsanız koskum.com adresini de alın. Böylece Türkçe karakterle yazamayan veya yazmak istemeyen kullanıcıları, e-posta uyumluluğunu ve reklam metinlerini garanti altına alırsınız. Alan adlarınızı ve DNS kayıtlarınızı tek panelden yönetmek için alan adı hizmetimizi inceleyebilir, siteyi barındıracağınız altyapı için hosting paketlerimize göz atabilirsiniz.

    Tarayıcıda ve Adres Çubuğunda Nasıl Görünür?#

    Kullanıcı deneyimi açısından en kritik soru şudur: kişi sitenizi ziyaret ettiğinde adres çubuğunda köşküm.com mu yoksa xn--kkm-hoac...com gibi anlamsız bir dizge mi görecek? Cevap, tarayıcının o alan adının içerdiği yazı sistemine ve TLD politikasına göre verdiği karara bağlıdır. Modern tarayıcılar, güvenli olduğuna kanaat getirdikleri durumlarda Unicode formu (yani köşküm.com) gösterir; şüpheli buldukları durumlarda ise güvenlik gerekçesiyle ham punycode formunu (xn--...) gösterir.

    Tarayıcılar bu kararı verirken bir dizi kurala bakar. Etiketin tamamı tek ve tutarlı bir yazı sistemine mi ait, yoksa Latin ve Kiril gibi farklı sistemler karıştırılmış mı? TLD'nin IDN politikası bu karakterlere izin veriyor mu? Kullanıcının tarayıcı dil ayarları bu yazı sistemiyle uyumlu mu? Türkçe karakterler Latin yazı sisteminin bir parçası olduğu için, iyi kurgulanmış bir .com veya .com.tr Türkçe alan adı çoğu modern tarayıcıda okunur Unicode formuyla görünür. Sorun daha çok, birbirine benzeyen farklı alfabelerin karıştırıldığı kötü niyetli isimlerde ortaya çıkar.

    Sunucu tarafında da bu ayrımı doğru yönetmeniz gerekir. Web sunucunuzun sanal host tanımında alan adını punycode formuyla yazmanız en güvenli yoldur, çünkü sunucu yazılımı gelen isteğin Host başlığını ASCII olarak görür:

    server {
        listen 443 ssl;
        # IDN alan adı sunucu yapılandırmasında punycode ile yazılır
        server_name xn--kkm-hoac1a.com www.xn--kkm-hoac1a.com;
    
        ssl_certificate     /etc/letsencrypt/live/xn--kkm-hoac1a.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/xn--kkm-hoac1a.com/privkey.pem;
    
        root /var/www/koskum;
        index index.php index.html;
    }
    

    TLS sertifikanız da punycode formunu içerir; Let's Encrypt gibi sağlayıcılar IDN'i punycode ile işler. Bu nedenle sertifika oluştururken alan adını xn--... biçiminde vermeniz gerekir. Siteniz için ücretsiz veya ticari sertifika kurmayı düşünüyorsanız SSL çözümlerimizi inceleyebilirsiniz.

    Homograf Saldırıları ve Phishing Riski#

    IDN'in en ciddi güvenlik problemi homograf saldırısıdır ve Türkçe karakterli alan adı düşünen herkesin bunu bilmesi gerekir. Homograf, farklı Unicode karakterlerinin ekranda birbirine tıpatıp benzemesinden yararlanan bir aldatma tekniğidir. Örneğin Latin alfabesindeki a harfi ile Kiril alfabesindeki а harfi ekranda ayırt edilemez, ama Unicode'da tamamen farklı karakterlerdir ve farklı punycode üretirler. Saldırgan, tanınmış bir markanın adını bu benzer karakterlerle kaydederek аpple.com (Kiril а ile) gibi göze apple.com görünen ama aslında bambaşka bir alan adı oluşturabilir.

    Bu tehdit, kullanıcıyı sahte bir siteye çekip parola ya da kart bilgisi çalmayı hedefleyen phishing (oltalama) saldırılarında kullanılır. Kurban adres çubuğuna baktığında beklediği markayı görür, oysa sertifika bile geçerli olabilir çünkü saldırgan gerçekten o sahte alan adına sahiptir. İşte tarayıcıların "şüpheli" durumlarda Unicode yerine ham xn-- formunu göstermesinin sebebi tam olarak budur — okunamayan bir xn-- dizgesi, kullanıcıyı en azından "burada bir tuhaflık var" diye uyarır. Punycode'u bir DNS kaydında gördüğünüzde, onu insan tarafından okunabilir hâle getirip beklediğiniz isim olup olmadığını doğrulamayı alışkanlık hâline getirin:

    # Şüpheli bir xn-- alan adını Unicode'a çözerek gerçekte ne olduğunu görün
    domain = "xn--pple-43d.com"
    print(domain.encode("ascii").decode("idna"))
    # beklenmedik bir sonuç çıkarsa (ör. Kiril karışımı) alarm zilini çalın
    

    Bir işletme sahibi olarak bu riske karşı iki cephede önlem alırsınız. Birincisi savunma amaçlı kayıttır: markanızın Türkçe karakterli ve ASCII varyantlarını, sık karıştırılan benzer yazımlarını kendiniz kaydederek başkalarının kapmasını engellersiniz. İkincisi, ziyaretçilerinizi phishing sitelerinden koruyacak sunucu tarafı önlemlerdir. Trafiği filtreleyen bir web uygulaması güvenlik duvarı (WAF) ve hacimli saldırılara karşı DDoS koruması marka güvenliğinizin doğal tamamlayıcılarıdır.

    E-posta ve Uygulama Uyumluluğu Sorunları#

    IDN'in en çok baş ağrıtan pratik yanı e-posta tarafındadır. Burada iki ayrı meseleyi karıştırmamak gerekir. Birincisi, alan adının IDN olması: köşküm.com adresine ait bir e-posta kutusu teknik olarak sorunsuz çalışır, çünkü e-posta sunucuları MX sorgusunu punycode form (xn--...com) üzerinden yapar. Yani bilgi@köşküm.com adresine gönderilen mailler aslında [email protected] üzerinden yönlendirilir ve çoğu sistemde çalışır. Sorun daha çok, gönderen tarafındaki eski istemcilerin adres çubuğundaki Türkçe karakterleri düzgün punycode'a çevirememesinden kaynaklanır.

    İkinci ve çok daha zorlu mesele, e-posta adresinin @ işaretinden önceki kısmında (yerel kısım) Türkçe karakter kullanmaktır, örneğin çağrı@site.com. Bu, EAI (Email Address Internationalization) adı verilen ayrı bir standartla ele alınır ve punycode'un çözemediği bir alandır; çünkü yerel kısım DNS'e değil, alıcı posta sunucusunun yorumuna tabidir. EAI desteği son yıllarda artsa da hâlâ evrensel değildir. Birçok posta sunucusu, form doğrulama kütüphanesi ve üçüncü taraf sistem yerel kısımda Unicode karakteri reddeder. Bu yüzden kesin tavsiyemiz nettir: e-posta adreslerinin yerel kısmında asla Türkçe karakter kullanmayın, [email protected] gibi ASCII bir yerel kısım tercih edin.

    Uyumluluk tablosunu şöyle özetleyebiliriz:

    SenaryoDurumNot
    IDN alan adına gelen mail (x@köşküm.com)Genelde çalışırMX punycode üzerinden çözülür
    Yerel kısımda Türkçe (çağrı@x.com)RiskliEAI desteği her yerde yok, kaçının
    Eski istemci / form doğrulamasıSorunlu olabilirBazı sistemler xn-- bile kabul etmez
    ASCII eşdeğeri adres ([email protected])Her yerde çalışırEn güvenli tercih

    Aynı uyumluluk çekincesi bazı üçüncü taraf servisler, ödeme sağlayıcılar, SMS/OTP sistemleri ve eski CRM yazılımları için de geçerlidir; bunların bir kısmı xn-- içeren adresleri kabul etmeyebilir. Kurumsal e-posta altyapınızı planlarken bu uyumluluk kısıtlarını göz önünde bulundurun; profesyonel e-posta hizmetimiz hem IDN alan adları hem de standart ASCII kurulumlar için uygun yapılandırmayı destekler.

    IDN Alan Adı Almalı mıyım? Pratik Bir Değerlendirme#

    Şimdiye kadarki her şeyi bir karar çerçevesine oturtalım. Türkçe karakterli bir alan adı, marka kimliğinizi tam olarak yansıtması, dilinize saygı göstermesi ve akılda kalıcılığı açısından değerlidir; özellikle yerel pazara hitap eden, adında Türkçe harf bulunan bir markanın öğretmenimiz.com gibi bir adresi güçlü bir izlenim bırakır. Reklam panolarında, ambalajlarda ve sözlü tanıtımda "olduğu gibi" görünmesi bir avantajdır.

    Öte yandan, IDN'in getirdiği teknik sürtünmeler gerçektir: punycode karmaşası, e-posta yerel kısım kısıtları, bazı eski sistemlerin uyumsuzluğu ve homograf riski. Bu yüzden çoğu senaryoda en sağlıklı strateji ikili kayıttır. Birincil adresiniz olarak ASCII varyantı (ogretmenimiz.com) kullanın; Türkçe karakterli IDN varyantını (öğretmenimiz.com) da kaydedip birincil adrese yönlendirin. Böylece hem marka bütünlüğünü hem de evrensel uyumluluğu elde edersiniz. Yönlendirmeyi DNS ve web sunucusu düzeyinde kurmak basittir:

    ; IDN varyantını (punycode) ana adrese yönlendirmek için
    ; her iki alan adı da aynı sunucuya işaret eder
    ogretmenimiz.com.        3600  IN  A      203.0.113.10
    xn--retmenimiz-....com.  3600  IN  A      203.0.113.10
    

    Sunucuda ise gelen IDN isteğini kalıcı olarak ASCII adrese taşıyan bir yönlendirme kuralı yeterlidir:

    # IDN varyantına gelen tüm istekleri ana ASCII adrese 301 ile taşı
    server {
        listen 443 ssl;
        server_name xn--retmenimiz-....com;
        return 301 https://ogretmenimiz.com$request_uri;
    }
    

    Bu stratejiyi WordPress veya benzeri bir CMS üzerinde kuruyorsanız, canonical (birincil) alan adı ayarını ASCII adres olarak belirleyin ki arama motorları içeriği tek bir adrese atfetsin ve SEO değeriniz bölünmesin. WordPress hosting veya genel web hosting paketlerimizle bu yönlendirmeleri panel üzerinden kolayca kurabilir, arama motoru görünürlüğünüzü güçlendirmek için SEO hizmetimizden yararlanabilirsiniz. Daha ileri düzeyde tam kontrol isteyen ekipler için VDS veya sanal sunucu çözümlerimiz IDN yapılandırmasını sunucu düzeyinde özelleştirmenize imkân verir.

    Sıkça Sorulan Sorular#

    IDN ile normal alan adı arasındaki fark nedir?#

    Teknik olarak DNS düzeyinde hiçbir fark yoktur; her ikisi de sonuçta ASCII bir isme çözülür. Fark yalnızca kullanıcıya gösterilen katmandadır. Normal bir alan adı zaten ASCII harflerden oluşur ve olduğu gibi çözülür. IDN ise ç, ş, ğ gibi Unicode karakterler içerir ve DNS'e gitmeden önce punycode ile xn-- başlayan bir ASCII karşılığa dönüştürülür. Yani IDN, standart DNS'in üzerine eklenmiş bir görüntüleme ve kodlama katmanıdır, ayrı bir alan adı türü değildir.

    Punycode neden xn-- ile başlıyor?#

    xn-- öneki, IDN standardının bir etiketin punycode ile kodlandığını belirtmek için ayırdığı özel bir işarettir. Bir DNS etiketi bu önekle başlıyorsa, tarayıcı ve uygulamalar onu "bu aslında bir Unicode isim, çöz ve okunur biçimde göster" diye yorumlar. Bu önek sayesinde eski yazılımlar bile IDN'yi normal bir ASCII isim gibi taşıyabilir, sadece görüntüleme yapan modern istemciler onu Unicode'a çevirir. Önekin bu şekilde standart olması, geriye dönük uyumluluğun temel taşıdır.

    Türkçe karakterli alan adı SEO açısından dezavantaj mı?#

    Doğrudan bir cezası yoktur; arama motorları punycode ile Unicode formu aynı adres olarak tanır ve içeriği değerlendirir. Asıl risk teknik yönetim hatalarından doğar: hem IDN hem ASCII varyantı ayrı ayrı erişilebilir kalırsa aynı içerik iki adreste görünür ve bu değeri böler. Bu yüzden birini canonical (birincil) adres seçip diğerini 301 ile ona yönlendirmek gerekir. Doğru yönlendirme kurulduğunda SEO açısından IDN kullanmak sizi geriye düşürmez.

    E-posta adresimde Türkçe karakter kullanabilir miyim?#

    Alan adı kısmında, yani @ işaretinden sonrasında Türkçe karakterli bir IDN kullanmak genellikle çalışır çünkü posta sunucusu MX kaydını punycode üzerinden çözer. Ancak @ işaretinden önceki yerel kısımda Türkçe karakter kullanmak (örneğin çağrı@site.com) risklidir; bu EAI standardına bağlıdır ve birçok sunucu, form ve üçüncü taraf servis bunu reddeder. Kesin tavsiye, yerel kısmı her zaman ASCII tutmaktır.

    Homograf saldırısından nasıl korunurum?#

    İki yönlü hareket edin. Marka sahibi olarak, adınızın Türkçe karakterli ve benzer görünen varyantlarını kendiniz kaydederek başkalarının kötüye kullanmasını engelleyin. Kullanıcı olarak ise tanımadığınız bir sitede adres çubuğunda beklenmedik xn-- dizgeleri görürseniz veya bir bağlantının gerçekte nereye gittiğinden emin değilseniz, punycode'u çözüp gerçek ismi doğrulamadan bilgi girmeyin. Sunucu tarafında bir WAF ve güncel tarayıcı kullanımı ek koruma sağlar.

    xn-- ile başlayan alan adını sunucuma nasıl tanıtırım?#

    Web sunucusu yapılandırmasında ve TLS sertifikasında alan adını her zaman punycode formuyla, yani xn--... biçiminde yazın. Nginx'te server_name, Apache'de ServerName ve sertifika oluşturma komutları hep ASCII punycode formunu bekler. Unicode formunu yalnızca kullanıcıya gösterilen yüzeylerde (içerik, meta etiketler) kullanın. Bu ayrımı doğru kurduğunuzda site, sertifika ve e-posta zincirinin tamamı sorunsuz çalışır.

    Kapanış#

    IDN, Türkçe karakterli alan adlarını mümkün kılan zarif bir çözümdür: kullanıcıya markanızı olduğu gibi, aksanlarıyla gösterirken arka planda her şeyi punycode ile ASCII'ye çevirip DNS'in eski dünyasıyla uyumlu kalır. Bu güçlü yanının bedeli, homograf riski ve e-posta uyumluluğu gibi pratik sürtünmelerdir. Bu yüzden en sağlıklı yaklaşım, Türkçe karakterli ismi marka değeri için almak, ASCII eşdeğerini birincil adres olarak kullanmak ve ikisini doğru yönlendirmelerle birleştirmektir.

    Clou.TR olarak Türkçe karakterli ve ASCII alan adlarınızı tek panelden kaydedip yönetmenizi, ardından bunları güvenli ve hızlı bir altyapıda barındırmanızı sağlıyoruz. Alan adı kaydı, hosting paketleri, SSL sertifikaları ve kurumsal e-posta çözümlerimizle IDN kurulumunuzun her katmanını uçtan uca kurabilir; daha fazla teknik kontrol isterseniz VDS ve sunucu yönetimi hizmetlerimizle punycode yönlendirmelerinizi ve sertifikalarınızı sizin adınıza yapılandırabiliriz. Markanızı Türkçesiyle taşırken güvenliğinden ödün vermeyin.

    Alan AdıIDNTürkçe

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.