Apache HTTP Server'da hangi TLS sürümlerinin kabul edileceğini SSLProtocol yönergesi belirler. Yönerge mod_ssl tarafından sağlanır ve sunucu genelinde veya sanal sunucu bloğunda kullanılabilir.
Sözdizimi
Değerler + ile eklenir, - ile çıkarılır. all kullanılan OpenSSL'in desteklediği tüm sürümleri temsil eder:
# Önerilen, açık ve okunaklı biçim
SSLProtocol -all +TLSv1.2 +TLSv1.3
# Eşdeğer kısa biçim
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
TLSv1.3 için Apache 2.4.36 veya üstü ve OpenSSL 1.1.1 ya da daha yeni bir sürüm gerekir. Eski sürümde bu değeri yazarsanız yapılandırma hata verir.
Nereye yazılır?
- Debian/Ubuntu:
/etc/apache2/mods-available/ssl.conf - RHEL/CentOS:
/etc/httpd/conf.d/ssl.conf - Plesk ve cPanel panellerinde panelin arayüzü veya şablon dosyaları üzerinden.
Sanal sunucu uyarısı
Aynı IP:port üzerindeki birden çok SNI sanal sunucuda, ilk yüklenen (varsayılan) sunucunun protokol ayarı el sıkışma sırasında geçerli olabilir. Bu yüzden ayarı global düzeyde yapmak, ardından gerekirse sanal sunucuları bu ayara uygun tutmak daha güvenlidir.
Uygulama ve test
- Sözdizimi:
apachectl configtest - Uygulama:
systemctl reload apache2(RHEL ailesindehttpd) - Kabul edilmeyen sürüm:
openssl s_client -connect example.com:443 -tls1_1başarısız olmalı. - Kabul edilen sürüm:
openssl s_client -connect example.com:443 -tls1_2bağlanmalı.
Birlikte ayarlanacaklar
Protokol tek başına yeterli değildir; SSLCipherSuite ile güçlü şifreleri, OCSP stapling ile yanıt süresini ve sertifika zincirini de gözden geçirin. Sonuçları SSL kontrol aracıyla görebilirsiniz.
Hata ayıklama
"SSLProtocol: Illegal protocol 'TLSv1.3'" benzeri hata alıyorsanız Apache veya OpenSSL sürümü TLS 1.3'ü desteklemiyordur; apachectl -V ve openssl version çıktısını kontrol edin. Ayar uygulanmış görünmüyorsa yönergenin başka bir yapılandırma dosyasında tekrar tanımlanıp tanımlanmadığına bakın: apachectl -t -D DUMP_INCLUDES ile yüklenen dosyaları listeleyebilirsiniz.
Henüz sertifikanız yoksa SSL sertifikaları sayfasından seçim yapabilirsiniz.