Kolayca tekrar üretilemeyen ve yalnızca üretim ortamında meydana gelen istisnaları nasıl ayıklayabilirim?


9

İstisnanın yalnızca üretim ortamımızda meydana geldiği bir konu üzerinde çalışıyorum. Bu ortamlara erişimim yok ve bu istisnanın ne anlama geldiğini de bilmiyorum. Hata açıklamasına baktığımda sebebini anlayamıyorum.

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

Birisi bana bu tür bir soruna nasıl yaklaşacağımı tavsiye eder mi?


4
bunun StackOverflow'a taşınması gerekir mi? Sanırım orada daha fazla yanıt alacaksın.
DXM

10
Tek kelime: günlük tutma.
quant_dev

1
@DXM - çok genel olduğu için Stack Overflow için konu dışı olurdu. OP belirli bir çözümden ziyade strateji ve tekniklerin peşindedir. Başarısız olan kod dahil edilmişse, o zaman belki Stack Overflow üzerinde çalışabilir.
ChrisF

Deneyimlerime göre, bu gibi sorunların çoğu güvenlik yapılandırması sorunlarından kaynaklanır ve anlaşılması zor olabilir. Diğerlerinin de belirttiği gibi, iyi günlük kaydı bunu ortaya çıkarmaya yardımcı olacaktır.
jfrankcarr

Yanıtlar:


18

Genel olarak, daha iyi hata ayıklama günlüğü. Ne bilmek istediğinizi belirleyin, koda ekleyin ve günlüklere ekleyin, böylece çalışabilirsiniz. O sırada çevrenin daha fazla ayrıntısının yakalanması da yardımcı olur - hangi istek, ne zaman vb.

Özellikle, bu isabet istemcilerde ortak bir kalıp ararım - ve bir optimizasyon bulduysanız - ama sonra git ve TCP katmanı trafiğini yakalar.

Değiştirilen SSL mesajlarına baktığınızda, protokolde neyin yanlış gittiğine veya en azından isteğin ortak özelliklerinin ne olduğuna dair bir fikir vermeniz gerekir. Bunu yaptıktan sonra hata ayıklamaya daha yakın olmalıdır.

Bir rehber olarak, bunun üç şeyden birinden geldiğini tahmin ediyorum:

  1. SSL olmayan bir şey SSL bağlantı noktasıyla konuştu. (bağlantı noktası taramaları yaygındır, ancak HTTPS bağlantı noktasına HTTP de gerçekleşir.)
  2. İstemci, kabul edilebilir bir şifreleme kümesini sunucuyla paylaşmaz.
  3. İstemci bir sertifika sunar ve sunucunun tıslama özelliği vardır. (Yaygın olmayan, ancak mümkün.)

1
belki sunucu kendinden imzalı bir sertifika sunar veya müşterinin bilmediği / güvenmediği bir CA tarafından imzalanır
Carlos Campderrós

Sanırım # 3, taraflardan biri sertifikaların süresi dolduğunda gerçekleştiğini gördüm.
SinirliWithFormsDesigner

Üretim sistemlerinde biraz hata ayıklama yaptım. Asla bir hata ayıklayıcı kullanmadım, her zaman ya ekranın belirli bir bölümüne anahtar değerleri kaydediyor ya da yazıyor.
Loren Pechtel

Tavsiyeniz için teşekkürler.Üretim hatasını çözmenin pragmatik yolları olduğundan eminim.
C4CodeE4Exe

4

Yapılandırılabilir bir maksimum günlük düzeyine sahip bir günlük kaydı stratejisi kullanmanızı öneririm. Log4j ( http://logging.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) gibi bir yardımcı program bu işi yapabilir.

Yapılandırılabilir günlük düzeyi (veya ayrıntı düzeyi), muhtemelen yazılımınızı yeniden dağıtmak zorunda kalmadan hatanın nedenini bulabilmek için önemlidir.

Böyle bir strateji hatayı bulmak için yeterli değilse, kendinizin iletişim kurduğu uygulamalar tarafından üretilen günlüklerin nasıl üretileceğini / okunacağını bulmaya çalışın.

Ayrıca, hatalar hakkında otomatik olarak e-posta yoluyla daha fazla bilgi almak için bazı mekanizmalar da uygulayabilirsiniz.

Daha genel olarak, günlük kaydı ve izlemeyi içeren daha büyük bir konu olan enstrümantasyon hakkında bazı makaleleri okuyabilirsiniz.

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.