обмеження журналу налагодження java ssl -


96

Використання прапора JVM

-Djavax.net.debug=ssl

виробляє величезну кількість журналювання, деталі для кожної події SSL на сервері. Чи є в будь-якому випадку лише помилки журналу? або, можливо, є якась краща підмножина цих прапорів, яка дає більш акуратний результат

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
Я вважаю, що ви отримуєте помилки безкоштовно як виключення. Спеціальні дії не потрібні.
jww

Це спеціально використовується для налагодження. Звідси величезна кількість колод.
javajavajava

1
Якщо встановити його, ""здається, видно лише кілька попереджень.
NateS

Відповіді:


87

Формат використання додаткових sslпрапорів є, ssl:[flag]наприклад, таким:

-Djavax.net.debug=ssl:recordабо -Djavax.net.debug=ssl:handshake.


2
це високо оцінена відповідь, але чи справді це працює для людей? Здається, це не для мене. Існує також помилка про те, що ці параметри насправді не працюють.
eis

1
@eis так, це спрацювало для мене. Можливо, ви не налаштовуєте його належним чином, і якщо так, то остаточно поставте нове запитання, щоб ми могли вам допомогти :)
Alfabravo

@Alfabravo, отже, ви стверджуєте, що запис про помилку недійсний, і це працює належним чином?
eis,

1
Ну, це з 2014 року, jdk7 та openjdk. Крім того, хтось прокоментував тут, що ведення журналу налагодження було вдосконалено, отже, таке
Alfabravo

14

Я також вважаю, що використання -Djavax.net.debug=ssl(або навіть його фільтри) занадто громіздке для налагодження проблем HTTPS.

Це трохи залучено, але я вважаю за краще налаштувати mitmproxy десь на дешевому сервері, а потім налаштувати своїх клієнтів Java на проксі через нього. Таким чином я можу зручно перевіряти та відтворювати потоки запитів / відповідей HTTPS на проксі-сервері без необхідності прочісувати купу журналів.

Якщо вам цікаво, я написав керівництво щодо того, як це зробити: Налагодження SSL в Java за допомогою mitmproxy


Я вважаю, що ваш підхід корисний для налагодження трафіку, який відбувається всередині сеансу TLS, і маючи на ньому всі деталі, маючи змогу його змінювати, але це має набагато менший сенс при дослідженні проблеми, що відбувається на рівні самого сеансу TLS. Ви проксі-сервер змінить і приховає те, що спочатку відбувалося на цьому рівні.
jmd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.