SSL Sertifikası

Application Layer Protocol Negotiation (ALPN)

ALPN, TLS el sıkışmasında HTTP/2 ve HTTP/3 gibi uygulama protokolünü ek gecikme olmadan seçer. Nginx, Apache ayarı ve openssl ile doğrulama.

ALPN (Application-Layer Protocol Negotiation), TLS el sıkışması sırasında istemci ile sunucunun hangi uygulama protokolünü konuşacaklarını ek bir gidiş-dönüş olmadan kararlaştırmasını sağlar. HTTP/2'nin tarayıcılarda çalışması ALPN'e dayanır.

Nasıl çalışır?

  1. İstemci, ClientHello içine tercih sırasına göre bir liste koyar, örneğin h2 ve http/1.1.
  2. Sunucu listeden desteklediği birini seçer ve ServerHello/EncryptedExtensions içinde bildirir.
  3. Bağlantı kurulduktan sonra iki taraf seçilen protokolle devam eder.

Yaygın tanımlayıcılar: http/1.1, h2 (HTTP/2 üzerinde TLS) ve h3 (HTTP/3). Bir ortak protokol bulunamazsa sunucu no_application_protocol uyarısı verebilir.

Sunucuda etkinleştirme

# Nginx
server {
    listen 443 ssl;
    http2 on;          # 1.25.1 ve sonrası
    # eski sürümlerde: listen 443 ssl http2;
    ssl_protocols TLSv1.2 TLSv1.3;
}

# Apache
Protocols h2 http/1.1

Apache'de mod_http2 modülünün yüklü olması gerekir.

Doğrulama

openssl s_client -connect example.com:443 -alpn h2,http/1.1 -servername example.com < /dev/null 2>/dev/null | grep -i "ALPN"
curl -I --http2 https://example.com/

Çıktıda ALPN protocol: h2 görüyorsanız HTTP/2 müzakere edilmiştir.

Ne işe yarar?

  • HTTP/2 ve HTTP/3 geçişini ek gecikme olmadan sağlar.
  • Aynı porttan farklı protokolleri (örneğin HTTP/2 ve bir özel protokol) ayırt etmeyi mümkün kılar.
  • Yük dengeleyicilerde protokole göre yönlendirme yapılabilir.

HTTP/2 yalnızca geçerli bir sertifika ve modern TLS ile tarayıcılarda kullanılır; uygun sertifika için SSL sertifikalarına, test için SSL denetleme aracına bakabilirsiniz.

Bu makale faydalı oldu mu?

Makale Ara

SSL Protokol ve Güvenlik

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

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

Destek Talebi Aç