HTTP/3 QUIC Etkinleştirme: Sunucuda TLS 1.3 Kurulumu
- HTTP/3 QUIC Etkinleştirme: Sunucuda TLS 1.3 Kurulumu
- HTTP/3 ve QUIC Nedir, Neden TLS 1.3 Gerektirir?
- Ön Koşullar: Sunucu ve Ağ Gereksinimleri
- Nginx'te HTTP/3 ve TLS 1.3 Etkinleştirme
- Apache'de HTTP/3 Desteği ve Ters Proxy Çözümü
- LiteSpeed ve OpenLiteSpeed'de QUIC Açma
- Firewall ve DNS Ayarları
- HTTP/3'ü Test Etme ve Doğrulama
- Sık Karşılaşılan Hatalar ve Çözümleri
- Hangi Yöntemi Seçmelisiniz?
- Sıkça Sorulan Sorular
- HTTP/3'ü etkinleştirmeden önce TLS 1.3 zorunlu mu?
- UDP 443'ü açmazsam ne olur?
- HTTP/3 SEO sıralamasını doğrudan yükseltir mi?
- Paylaşımlı hosting kullanıyorsam HTTP/3'ü kendim etkinleştirebilir miyim?
- HTTP/3'ü etkinleştirdikten sonra eski tarayıcılar siteye erişemez mi?
HTTP/3 (QUIC) etkinleştirmenin ilk koşulu, sunucunuzda TLS 1.3’ün açık olmasıdır; HTTP/3 yalnızca TLS 1.3 üzerinden çalışır. Aşağıdaki adımlar Nginx, LiteSpeed ve Apache’de HTTP/3 QUIC etkinleştirme sürecini, firewall düzenlemelerini ve test yöntemlerini uygulamalı olarak anlatır. Sık yapılan hataları görüp çözümleri öğrenerek protokolü güvenle devreye alabilirsiniz.
HTTP/3, web sayfalarının daha hızlı yüklenmesini sağlayan modern bir aktarım protokolüdür. TCP yerine UDP üzerinde çalışır ve bağlantı kurulum süresini kısaltır. Özellikle mobil kullanıcılarda ve paket kaybı olan ağlarda performans farkı belirginleşir.
Önemli Noktalar
- HTTP/3 yalnızca TLS 1.3 ile çalışır; sunucuda TLS 1.3 kapalıysa tarayıcılar otomatik olarak HTTP/2’ye geri döner.
- Nginx 1.25 ve üzeri sürümler HTTP/3’ü resmi olarak destekler, ancak modülün derlenmiş olması gerekir.
- UDP 443 portu hem sunucu güvenlik duvarında hem bulut sağlayıcı güvenlik grubunda açık olmalıdır.
- Apache 2.4.x sürümlerinde yerleşik HTTP/3 desteği bulunmaz; ters proxy katmanı en pratik çözümdür.
Alt-Svcbaşlığı, tarayıcıya HTTP/3 desteğini bildiren kritik bileşendir.
HTTP/3 ve QUIC Nedir, Neden TLS 1.3 Gerektirir?
HTTP/3, internet tarayıcıları ile sunucular arasında veri aktarmak için kullanılan yeni nesil bir protokoldür. QUIC ise HTTP/3’ün temelini oluşturan ve UDP üzerinde çalışan taşıma protokolüdür. Klasik HTTP/2, TCP bağlantıları kurar; HTTP/3 ise UDP paketleriyle çalışarak el sıkışma süresini azaltır.

HTTP/3 bağlantısı şifreli olarak kurulur. Protokolün tasarımı gereği TLS 1.3 kullanılır; bu nedenle sunucunuzda TLS 1.3’ün etkinleştirilmiş olması ilk adımdır. TLS 1.3 kapalıyken tarayıcılar HTTP/3 bağlantısı kuramaz ve otomatik olarak HTTP/2 veya HTTP/1.1’e geri döner.
TLS 1.3’ün HTTP/3 için zorunlu olmasının teknik nedeni, QUIC’in el sıkışma sürecini TLS oturumuyla birleştirmesidir. Bu birleşik yapı, bağlantı kurulumunu tek gidiş-dönüş süresine indirir. Geleneksel TCP+TLS yapısında ise önce TCP el sıkışması, ardından TLS el sıkışması yapılır; bu da iki veya üç gidiş-dönüş gerektirir.
Ön Koşullar: Sunucu ve Ağ Gereksinimleri
HTTP/3 QUIC etkinleştirme öncesinde aşağıdaki koşulları sağlamanız gerekir. Bu adım, sonraki yapılandırma hatalarını azaltır.
- Sunucuda root veya sudo yetkisine sahip bir kullanıcı hesabı.
- Nginx 1.25 veya üzeri sürüm ve derleme sırasında
--with-http_v3_moduleseçeneği. Alternatif olarak güncel LiteSpeed veya OpenLiteSpeed. - Geçerli bir SSL/TLS sertifikası. Let’s Encrypt veya ticari bir sertifika kullanabilirsiniz.
- Sunucunun güvenlik duvarına ve varsa bulut sağlayıcı güvenlik grubuna erişim.
- Alan adınızın doğru A veya AAAA kaydına sahip olması.
- HTTP/3 için UDP 443 portunun açık olması.
Bu koşullar sağlandığında yapılandırma dosyalarını düzenlemeye geçebilirsiniz. Sunucuya SSH ile bağlanarak işlemlere başlayın. Sunucunuzda temel güvenlik ayarları henüz yapılmadıysa Ubuntu 22.04 / 24.04 İlk Sunucu Kurulumu ve Temel Güvenlik Ayarları yazısını incelemeniz faydalı olur.
Nginx’te HTTP/3 ve TLS 1.3 Etkinleştirme
Nginx, HTTP/3 desteğini 1.25 sürümünden itibaren resmi olarak sunar. Ancak dağıtımınızın deposundaki Nginx sürümü eski olabilir ve HTTP/3 modülünü içermeyebilir. Öncelikle modülün derlenip derlenmediğini kontrol edin.
nginx -V 2>&1 | grep -o -- '--with-http_v3_module'
Komut çıktısında --with-http_v3_module ifadesini görüyorsanız Nginx HTTP/3 destekliyordur. Çıktı boşsa Nginx’in güncel sürümünü resmi depodan kurmanız veya yeniden derlemeniz gerekir. Güncel sürüm notları için nginx.org adresini kontrol edin.

Adım 1: Site yapılandırma dosyasını açın. Genellikle /etc/nginx/sites-available/site.com.conf veya /etc/nginx/conf.d/site.com.conf yolundadır.
sudo nano /etc/nginx/sites-available/site.com.conf
Adım 2: Mevcut listen 443 ssl; satırını bulun. Aynı blokta HTTP/3 için ikinci bir dinleme satırı ekleyin.
listen 443 ssl;
listen 443 quic reuseport;
reuseport parametresi, aynı portun hem TCP hem UDP için kullanılabilmesini sağlar. Bu satır yoksa Nginx port çakışması nedeniyle başlatılamaz.
Adım 3: TLS protokol ayarlarını kontrol edin. ssl_protocols satırına TLSv1.3 ekleyin. Mevcut istemcilerin bağlantısını kesmemek için TLS 1.2’yi de açık bırakabilirsiniz.
ssl_protocols TLSv1.2 TLSv1.3;
TLSv1.3 yoksa HTTP/3 çalışmaz. Tarayıcılar sessizce TCP tabanlı protokolü kullanmaya devam eder.Adım 4: Tarayıcılara HTTP/3 desteğini bildiren Alt-Svc başlığını ekleyin.
add_header Alt-Svc 'h3=":443"; ma=86400';
Bu başlık, tarayıcıya 86400 saniye boyunca HTTP/3’ün 443 numaralı UDP portundan erişilebilir olduğunu söyler. ma parametresi, tarayıcının bu bilgiyi ne kadar süreyle önbelleğe alacağını belirler.
Adım 5: Yapılandırmayı test edin ve Nginx’i yeniden yükleyin.
sudo nginx -t
sudo systemctl reload nginx
İlk komut yapılandırma hatalarını gösterir. İkinci komut ise servisi kesintiye uğratmadan yeni ayarları uygular.
CentOS Web Panel üzerinde çalışıyorsanız, Nginx HTTP/3 ayarlarını CWP özelinde anlatan CentOS Web Panel için Nginx ile HTTP/3 ve QUIC Nasıl Aktif Edilir? yazısına göz atabilirsiniz.
Apache’de HTTP/3 Desteği ve Ters Proxy Çözümü
Apache HTTP Server’ın kararlı 2.4.x sürümlerinde resmi HTTP/3 desteği bulunmaz. Bu nedenle yalnızca Apache üzerinde tam HTTP/3 QUIC etkinleştirme şu anda yaygın bir pratik değildir. Apache kullanıcıları için en sağlam çözüm, TLS 1.3’ü etkinleştirip HTTP/3’ü Nginx veya LiteSpeed gibi bir ters proxy katmanına devretmektir.
Apache’de TLS 1.3’ü açmak için SSL modülünün etkin olduğundan emin olun ve site yapılandırma dosyasında şu satırları düzenleyin.
SSLProtocol TLSv1.2 TLSv1.3
SSLCipherSuite HIGH:!aNULL:!MD5
Bu ayar, Apache’nin TLS 1.2 ve TLS 1.3 bağlantılarını kabul etmesini sağlar. TLS 1.3, HTTP/3’e geçişin temel taşıdır. Apache’yi ters proxy arkasına alırken 443 numaralı portu Nginx’in yönetmesine izin verirsiniz. Böylece Nginx HTTP/3’ü sunarken Apache de PHP ve dinamik içerikleri işleyebilir.

CentOS Web Panel üzerinde Apache TLS 1.3 ayarları için CentOS Web Panel (CWP) Apache’de TLS 1.3 Nasıl Etkinleştirilir? yazısı faydalı olacaktır.
LiteSpeed ve OpenLiteSpeed’de QUIC Açma
LiteSpeed Web Server ve OpenLiteSpeed, HTTP/3 desteğini yerleşik olarak sunar. Panel üzerinden QUIC’i etkinleştirmek birkaç adım sürer.
- WebAdmin konsoluna giriş yapın.
- Configuration > Server > General bölümüne gidin.
- Enable QUIC seçeneğini Yes olarak işaretleyin.
- Listener ayarlarında UDP portunun 443 olarak tanımlı olduğunu doğrulayın.
- SSL/TLS sekmesinde TLS 1.3’ün etkin olduğunu kontrol edin.
- Ayarları kaydedip Graceful restart yapın.
LiteSpeed’de QUIC açıldığında Alt-Svc başlığı otomatik olarak yönetilir. Yine de ağ katmanında UDP 443 portunun açık olması gerekir. LiteSpeed’in QUIC desteği, Nginx’e kıyasla daha az yapılandırma adımı gerektirdiği için panel tabanlı yönetim tercih eden kullanıcılar için pratiktir.
Firewall ve DNS Ayarları
HTTP/3’ün çalışabilmesi için yalnızca TCP 443 değil, UDP 443 portunun da açık olması gerekir. Çoğu sunucuda TCP 443 zaten açıktır; ancak UDP 443 genellikle kapalıdır. Bu, HTTP/3’ün sessizce devre dışı kalmasının en yaygın nedenidir.
Ubuntu ve UFW kullanıyorsanız aşağıdaki komutları çalıştırın.
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw reload
Firewalld kullanan sistemlerde ise şu komutları uygulayın.
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=443/udp
sudo firewall-cmd --reload

Bulut sunucu kullanıyorsanız sağlayıcınızın güvenlik grubunda da UDP 443 kuralını eklemeniz gerekir. Ayrıca sunucu bir NAT veya yük dengeleyici arkasındaysa UDP trafiğinin doğru yönlendirildiğinden emin olun. Bazı yük dengeleyiciler UDP passthrough’u varsayılan olarak desteklemez; bu durumda sağlayıcınızın dokümantasyonunu kontrol etmeniz gerekir.
DNS tarafında özel bir kayıt değişikliği gerekmez. Ancak CDN kullanıyorsanız HTTP/3 ayarı genellikle CDN tarafında yapılır. Örneğin Cloudflare’de HTTP/3 varsayılan olarak açıktır; köken sunucuda da UDP 443 açıksa uçtan uca QUIC kullanılabilir.
HTTP/3’ü Test Etme ve Doğrulama
Yapılandırma sonrası HTTP/3’ün gerçekten çalışıp çalışmadığını doğrulamanız gerekir. En hızlı yöntem, güncel bir curl sürümü ile HTTP/3 isteği göndermektir.
curl --http3 -I https://ornek.com
Komut çıktısında HTTP/3 200 gibi bir yanıt görüyorsanız protokol aktif demektir. curl’ünüz HTTP/3 desteği içermiyorsa güncel sürümü curl.se adresinden edinebilirsiniz.
Nginx yapılandırmasını hızlıca doğrulamak için şu komutu da kullanabilirsiniz.
nginx -T | grep -E 'listen.*quic|Alt-Svc'
Tarayıcıda ise Chrome veya Edge geliştirici araçlarını açın. Network sekmesinde Protocol sütununu görünür hale getirin. İsteğin protokolü h3 olarak görünüyorsa HTTP/3 başarıyla kullanılıyor demektir.
Sayfa hızındaki dolaylı etkiyi görmek için TTFB Nedir? Google SEO İçin Sunucu Yanıt Süresini Düşürmenin 5 Yolu yazısını inceleyebilirsiniz.
Alt-Svc bilgisini önbelleğe aldığı için eski sonuçlar görebilirsiniz.Sık Karşılaşılan Hatalar ve Çözümleri
HTTP/3 kurulumunda ortaya çıkan sorunlar genellikle modül eksikliği, port kapalılığı veya başlık eksikliğinden kaynaklanır. Aşağıdaki tablo yaygın hataları özetler.
| Hata Belirtisi | Olası Neden | Çözüm |
|---|---|---|
unknown directive "http3" |
Eski Nginx sürümü veya modül eksik | Nginx’i güncelleyip listen ... quic satırını kullanın |
bind() failed veya Address already in use |
reuseport eksik |
Dinleme satırına reuseport ekleyin |
curl: option --http3 is unknown |
curl sürümü eski | HTTP/3 destekli güncel curl kurun |
| Tarayıcı sürekli TCP kullanıyor | UDP 443 kapalı veya Alt-Svc yok |
Firewall kuralını ve başlık satırını kontrol edin |
| TLS el sıkışma hatası | ssl_protocols satırında TLS 1.3 yok |
Protokol listesine TLSv1.3 ekleyin |
| HTTP/3 çalışıyor ancak performans artışı yok | CDN veya ters proxy HTTP/3’ü desteklemiyor | Ara katmanların UDP 443 passthrough yaptığını doğrulayın |
Bu hataları çözdükten sonra Nginx veya LiteSpeed servisini yeniden yükleyin ve test adımını tekrarlayın. Sorun devam ediyorsa sunucu loglarını inceleyin; Nginx için /var/log/nginx/error.log dosyası genellikle ipucu verir.
Hangi Yöntemi Seçmelisiniz?
Nginx kullanıyorsanız ve sunucunuzda güncel sürüm kuruluysa, Nginx HTTP/3 en yaygın ve iyi belgelenmiş yöntemdir. LiteSpeed veya OpenLiteSpeed kullanıyorsanız panel üzerinden QUIC’i açmak birkaç dakika sürer. Apache kullanıyorsanız kısa vadede TLS 1.3’ü etkinleştirip HTTP/3 katmanını Nginx’e devretmeniz en pratik çözümdür.
Değişiklikleri canlıya almadan önce test ortamında deneyin ve mevcut yapılandırmanın yedeğini alın. Kurulum sonrası curl --http3 ile doğrulama yapmayı atlamayın. HTTP/3’ün sağladığı hız avantajı, özellikle mobil trafiği yoğun olan sitelerde ve uzak coğrafi konumlardan erişilen sunucularda daha belirgin hissedilir.
Sıkça Sorulan Sorular
HTTP/3’ü etkinleştirmeden önce TLS 1.3 zorunlu mu?
Evet. HTTP/3 protokolü el sıkışmasını TLS 1.3 ile yapar. Sunucuda TLS 1.3 kapalıysa tarayıcılar HTTP/3 bağlantısı kuramaz ve TCP tabanlı protokolü kullanır.
UDP 443’ü açmazsam ne olur?
Tarayıcılar QUIC bağlantısı kuramaz ve otomatik olarak TCP 443 üzerinden HTTP/2 veya HTTP/1.1’e geri döner. Site çalışmaya devam eder ancak HTTP/3’ün hız avantajından yararlanamazsınız.
HTTP/3 SEO sıralamasını doğrudan yükseltir mi?
HTTP/3 doğrudan bir sıralama sinyali değildir. Ancak sayfa yükleme süresini düşürerek kullanıcı deneyimini ve dolaylı olarak SEO performansını iyileştirebilir.
Paylaşımlı hosting kullanıyorsam HTTP/3’ü kendim etkinleştirebilir miyim?
Paylaşımlı hosting ortamlarında sunucu yapılandırmasına erişiminiz olmadığı için HTTP/3’ü kendiniz etkinleştiremezsiniz. Hosting sağlayıcınızın HTTP/3 desteği sunup sunmadığını kontrol etmeniz gerekir.
HTTP/3’ü etkinleştirdikten sonra eski tarayıcılar siteye erişemez mi?
Hayır. HTTP/3 desteklemeyen tarayıcılar otomatik olarak HTTP/2 veya HTTP/1.1 üzerinden bağlanır. Protokol geriye dönük uyumluluk için tasarlanmıştır; hiçbir kullanıcı erişim kaybı yaşamaz.





