SSL üzerinden OS X Sunucusuna bağlanırken tlsv1 alarm protokolü sürümü


3

TLS 1.2 için hazır olmayan tüm müşterileri değerlendirirken, kısa süre içinde 5.3 sunucusunda 5.3 ve macS 10.12.4 ile 5.3 sunucusunda nasıl yeniden etkinleştirebilirim?

En altına atlarsanız, yapılandırma dosyalarını değiştirme denemeleri geriye doğru uyumluluğu geri yüklemek için şu ana kadar başarısız oldu

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

Sunucumuzu macOS 12.4'e ve Sunucu uygulamasını sürüm 5.3'e güncelledikten sonra, curl Bir MacOS sunucusuna bağlanmak için https sitesine bir Linux makineden çalışmaktan vazgeçip, istemci tarafında aşağıdaki mesajları vererek:

$ curl -v --insecure -o "output.file" https://myserver.domain/path/page.php
* About to connect() to myserver.domain port 443 (#0)
*   Trying 192.168.xxx.xxx... connected
* Connected to myserver.domain (192.168.xxx.xxx) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs/
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
* Closing connection #0

MacOS sunucusunun güncellenmesinden önce bağlantı iyi çalıştı. Öyle görünüyor ki güncelleme bir bağlantı seçeneğini kapattı. curl dayanır. Çok googledim, ama nedeninin tam olarak ne olduğundan emin değilim.

Aynısı curl Komut, başka bir Mac’ten yayınlandığında çalışır. Linux makinesi

$ curl --version
curl 7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10
Protocols: tftp ftp telnet dict ldap http file https ftps 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 

Mac istemcisindeyken

$ curl --version
curl 7.51.0 (x86_64-apple-darwin16.0) libcurl/7.51.0 SecureTransport zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets 

Maalesef, güncellemeyi denemek bir seçenek değil curl Linux makinesinde.

Bazı kaynaklar, uyumsuz şifre takımlarının neden olduğunu iddia ediyor, ancak bazı testlerden sonra cihazı kullanarak bir çözüm bulamadım. --ciphers seçeneği ve uyumlu bir şifre paketi nasıl bulacağımı da emin değilim.

MacOS Server 5.3 ile nelerin değiştiğini bulmaya çalıştım, ancak Apple değişiklik günlüğü bana bu konuda hiçbir ipucu vermiyor. Yani soru şudur:

MacOS 12.4 ve / veya macOS Server 5.3'te neler değişti ve macOS sunucumu nasıl yeniden yapılandırabilirim? curl bağlantı tekrar çalışıyor mu?

Güncelleme 1:

Geçici olarak 443 numaralı bağlantı noktasını halka maruz bıraktım; SSL Labs testleri . Sonuçlar, macOS sunucumun yalnızca TLS 1.2'yi desteklediğini ve başka bir şey olmadığını gösteriyor. Simüle edilmiş birkaç müşteri için test raporu Server sent fatal alert: protocol_version - örneğin, IE8-10 / Win7 ve Java7u25 dahil.

TLS 1 ve 1.1’i yeniden etkinleştirmeye çalıştım.

  • /library/server/web/config/apache2/sites/0000_127.0.0.1_34543_myserver.domain.conf
  • /library/server/web/config/apache2/httpd.conf
  • /library/server/web/config/apache2/httpd_server_app.conf
  • /library/server/web/config/proxy/apache_serviceproxy.conf (burada birden fazla örnek)

değiştirme

SSLProtocol -all +TLSv1.2

içine

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

ya da

SSLProtocol All

ancak URL’yi alırken bir fark yaratmadı curl.

Güncelleme 2:

Servis proxy hata günlüğü

[datetime] [ssl:info] [pid n] [client x.x.x.x:38805] AH02008: SSL library error 1 in handshake (server myserver.domain:443)
[datetime] [ssl:info] [pid n] SSL Library Error: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
[datetime] [ssl:info] [pid n] [client x.x.x.x:38805] AH01998: Connection closed to child 11 with abortive shutdown (server myserver.domain:443)

Bana göre, TLS v1'i etkinleştirme girişimlerim çalışmıyor gibi görünüyor.

Yani soru şudur: MacOS Server Apache'de TLS v1'i nasıl yeniden etkinleştirebilirim?

Yanıtlar:


3

kıvrılma 7.19.0 ... OpenSSL / 0.9.8h

Bu, kullandığınız OpenSSL'nin TLS 1.2 ve modern ECDHE şifreleri gibi modern protokolleri desteklemeyen çok eski (ve desteklenmeyen) bir sürümüdür. Yükseltme işleminden sonra sunucunuzun şimdi böyle bir protokol ve / veya şifre gerektirmesi ve bu nedenle eski OpenSSL sürümünüze bağlanmanın başarısız olması ihtimali yüksektir.

* SSLv3, TLS handshake, Client hello (1):

Bu, müşterinizin güvensiz bir protokol olduğu için bugün genellikle devre dışı bırakılan SSL 3.0 kullanmaya çalıştığını da gösterebilir. Kullanarak TLS 1.0'ı (OpenSSL 0.9.8 tarafından desteklenmektedir) kullanmaya zorlayabilirsiniz. curl -1 veya curl --tls1 sunucunun hala TLS 1.0'ı desteklediğini ve eski OpenSSL sürümünün kullanabileceği şekilde yapılandırılmış şifrelere sahip olduğunu ümit ediyorum.


Curl 7.19 eski olabilir, ancak yine de iyi bağlanır başka https web sitesi denedim (google.com vb.). Httpd config dosyalarına göre, macOS sunucusu TLS 1, 1.1 ve 1.2'yi destekler, ancak -1'i curl ile kullanmak yardımcı olmaz. kıvrılma izi çıktısı çok yardımcı değil gibi görünüyor. Bağlantı sorunlarının nedenini nasıl tespit edebileceğinize dair başka bir fikriniz var mı?
not2savvy

@ not2savvy: Sunucudaki günlük mesajlarına bakmak, sunucunun TLS uyarısını gönderen kişi olması nedeniyle yardımcı olabilir, çünkü müşterinin gönderdiği bir şeyi beğenmez. Sunucunuz herkese açıksa, sunucuyu da kontrol edebilirsiniz. SSLLabs Ayrıca belirli müşteriler veya kütüphanelerle davranış gösterir.
Steffen Ullrich

Apache günlüğünde mesaj yok. Sunucu genel değil. denedim openssl s_client -connect myserver.domain:443 Mac’imden CONNECTED(00000003) 16140:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_lib.c:185:. Ve eğer eklersem -tls1sonra anladım 31629:error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version:s3_pkt.c:1053:SSL alert number 70 Yukarıdaki mesajlara ek olarak.
not2savvy

Sunucumuzda SSLLab sınamalarını çalıştırmayı başardım. Sorumu sonuçlarla birlikte güncelledim.
not2savvy

@ not2savvy: TLS sürümüyle ilgili varsayımım doğru oldu. TLS 1.0'a izin vermek için yapılandırma değişikliğini yaptıktan sonra sunucuyu yeniden başlattınız mı? Ve SSLLabs ile yeniden denetlediniz mi, çünkü belki şimdi TLS 1.0 artık sorun değil şifreli.
Steffen Ullrich

1

TLSv1’i (veya diğer protokolleri) yeniden etkinleştirmek için, /Library/Server/Web/config/proxy/apache_serviceproxy.confgerekli protokolü <VirtualHost *:443> Bunun gibi bir bölüm:

<VirtualHost *:443>
  ProxyPreserveHost On
 SetEnv proxy-chain-auth on
 RequestHeader set X-Forwarded-Proto "https"
 RequestHeader set X-Forwarded-Port "443"
 RequestHeader unset Proxy early
 <IfModule mod_ssl.c>
   SSLEngine On
   SSLCertificateFile "/etc/certificates/${CERT_ID}.cert.pem"
   SSLCertificateKeyFile "/etc/certificates/${CERT_ID}.key.pem"
   SSLCertificateChainFile "/etc/certificates/${CERT_ID}.chain.pem"
   SSLCipherSuite "HIGH:MEDIUM:!MD5:!RC4:!3DES"
   SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
   SSLProxyEngine On
   SSLProxyProtocol -all +TLSv1.2
   SSLProxyCheckPeerCN off
   SSLProxyCheckPeerName off
 </IfModule>
 [...]
</VirtualHost>

Testlerime göre SSLProxyProtocol değiştirilmesi gerekmiyor. Ayrıca, soruda belirtilen diğer dosyalardaki değişikliklerin bir etkisi yoktur, bu yüzden dokunulmaları gerekmez.

Uyarı : Sunucu uygulamanızı yükseltmek büyük olasılıkla daima üzerine yazacaktır /Library/Server/Web/config/proxy/apache_serviceproxy.conf. Güncellemeden sonra, değişikliği yeniden uygulamanız gerekecektir.


Not: Değişiklikleri ayrı bir özel yapılandırma dosyasına taşımayı denedim apache_serviceproxy_customsites_myserver.domain.confSunucu yükseltmelerinin bu değişiklikleri geri almasını engellemesi gerekir. Buna ek olarak, protokol değişikliği belirli bir etki alanı ile sınırlı olabilir. Ancak bu işe yaramadı - hala nedenini araştırıyor.


Değişikliklerinizin kullanıldığından emin olmak için, macOS'u yeniden başlatmak gerekli görünmektedir sudo shutdown -r ), yalnızca web sunucusu değil ( sudo serveradmin stop/start web ) proxy servisini yeniden başlatmak için.

Tarafından bir doğrulama SSL Labs sunucu testi SSL 2 ve 3'ün mevcut olmadığını bildirirken, 1.0, 1.1 ve 1.2 TL’nin mevcut olduğunu bildirdi.


-3

Ayrıca Sienna Server 5.3'te TLS 1.1'i de etkinleştirmem gerekiyor. Bu yüzden alamayan birkaç e-posta var.

/library/server/web/config/apache2/sites/0000_127.0.0.1_34543_myserver.domain.conf

/library/server/web/config/apache2/httpd.conf
SUNUCUDA DOSYA YOK

/library/server/web/config/apache2/httpd_server_app.conf
düzenleme (kalın) ve yeniden başlatma hiçbir şey yapmadı

IfModule mod_ssl.c
SSLProtocol -all + TLSv1.1 + TLSv1.2 - NEDEN ÇALIŞMA
SSLProtocol Herşey --DIDNT ÇALIŞMASI

/library/server/web/config/proxy/apache_serviceproxy.conf (burada birden fazla örnek)

üzgünüm bu hakkı kullanmıyorum, ancak umarım bittiğinde bu gerçek bir cevap olacaktır


Evet, cevabımı gör. Değiştirdiğim dosyalar soruda listeleniyor. Fakat aslında daha fazla bilgi isteyen bir cevap oluşturmamalısınız.
not2savvy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.