java ssl hata ayıklama günlüğünü sınırlama


96

JVM bayrağını kullanma

-Djavax.net.debug=ssl

sunucudaki her SSL olayının ayrıntıları gibi muazzam miktarda günlük kaydı üretiyor. Sadece hataların günlüğe kaydedilmesi var mı? veya muhtemelen bu bayrakların daha düzenli çıktı üreten daha iyi bir alt kümesi vardır

all            turn on all debugging
ssl            turn on ssl debugging

The following can be used with ssl:

    record       enable per-record tracing
    handshake    print each handshake message
    keygen       print key generation data
    session      print session activity
    defaultctx   print default SSL initialization
    sslctx       print SSLContext tracing
    sessioncache print session cache tracing
    keymanager   print key manager tracing
    trustmanager print trust manager tracing
    pluggability print pluggability tracing

    handshake debugging can be widened with:
    data         hex dump of each handshake message
    verbose      verbose handshake message printing

    record debugging can be widened with:
    plaintext    hex dump of record plaintext
    packet       print raw SSL/TLS packets

3
İstisnalar yoluyla hataları ücretsiz olarak aldığına inanıyorum. Özel eylemlere gerek yoktur.
jww

Bu, özellikle hata ayıklama için kullanılır. Bu nedenle büyük miktarda günlükler.
javajavajava

1
Bunu olarak ayarlamak ""yalnızca birkaç uyarı gösteriyor gibi görünüyor.
kabaetler

Yanıtlar:


87

Ek sslbayrakları kullanma biçimi ssl:[flag]örneğin:

-Djavax.net.debug=ssl:recordveya -Djavax.net.debug=ssl:handshake.


2
bu oldukça olumlu bir cevap, ancak gerçekten insanlar için işe yarıyor mu? Bana göre değil. Ayrıca bu seçeneklerin gerçekten işe yaramayacağına dair bir hata girişi var.
eis

1
@eis evet, benim için çalıştı. Belki de doğru şekilde
ayarlamıyorsunuzdur

@Alfabravo yani hata girişinin geçersiz olduğunu ve bunların beklendiği gibi çalıştığını mı söylüyorsunuz?
eis

1
Şey, 2014, jdk7 ve openjdk'den. Ayrıca, birisi buraya hata ayıklama günlüğünün iyileştirildiğini söyledi, işte öyle
Alfabravo

14

Ayrıca -Djavax.net.debug=sslHTTPS sorunlarını ayıklamak için kullanmanın (hatta filtrelerini) çok külfetli buluyorum .

Biraz karmaşık, ancak yapmayı tercih ettiğim şey, bir yerde ucuz bir sunucuda mitmproxy kurmak ve ardından Java istemcilerimi bunun üzerinden proxy yapacak şekilde yapılandırmak. Bu şekilde, bir grup günlükte taramak zorunda kalmadan, proxy üzerindeki HTTPS istek / yanıt akışlarını rahatça inceleyebilir ve yeniden oynatabilirim.

İlgileniyorsanız, bunu nasıl yapacağınıza dair bir rehber yazdım: mitmproxy kullanarak Java'da SSL hata ayıklama


Yaklaşımınızın bir TLS oturumunda meydana gelen trafiğin hatalarını ayıklamak ve üzerinde her ayrıntıya sahip olmak, onu değiştirebilmek için yararlı olduğunu düşünüyorum, ancak TLS oturumu düzeyinde meydana gelen bir sorunu araştırırken çok daha az mantıklı geliyor. Siz vekiliniz, başlangıçta bu seviyede olanları değiştirecek ve gizleyecektir.
jmd
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.