จำกัด การบันทึกการดีบัก 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
ใช่มันได้ผลสำหรับฉัน บางทีคุณอาจตั้งค่าไม่ถูกต้องและถ้าเป็นเช่นนั้นคุณควรถามคำถามใหม่อย่างชัดเจนเพื่อที่เราจะได้ช่วยคุณได้ :)
Alfabravo

@Alfabravo ดังนั้นคุณกำลังบอกว่ารายการข้อผิดพลาดไม่ถูกต้องและทำงานตามที่คาดไว้หรือไม่?
eis

1
มาจากปี 2014, jdk7 และ openjdk นอกจากนี้ยังมีบางคนแสดงความคิดเห็นที่นี่ว่าการบันทึกการดีบักได้รับการปรับปรุงดังนั้นจึงมีเช่นนั้น
Alfabravo

14

ฉันยังพบว่าการใช้-Djavax.net.debug=ssl(หรือแม้แต่ตัวกรอง) นั้นยุ่งยากเกินไปสำหรับการแก้ไขปัญหา HTTPS

มันมีส่วนเกี่ยวข้องเล็กน้อย แต่สิ่งที่ฉันชอบทำคือตั้งค่าmitmproxyบนเซิร์ฟเวอร์ราคาถูกจากนั้นกำหนดค่าไคลเอนต์ Java ของฉันให้เป็นพร็อกซีผ่านมัน ด้วยวิธีนี้ฉันสามารถตรวจสอบและเล่นซ้ำคำขอ / การตอบกลับ HTTPS บนพร็อกซีได้อย่างสะดวกสบายโดยไม่ต้องรวมบันทึกจำนวนมาก

หากคุณสนใจฉันได้เขียนคำแนะนำเกี่ยวกับการดำเนินการนี้: การดีบัก SSL ใน Java โดยใช้ mitmproxy


ฉันคิดว่าวิธีการของคุณมีประโยชน์สำหรับการแก้ไขข้อบกพร่องการรับส่งข้อมูลที่เกิดขึ้นภายในเซสชัน TLS และมีรายละเอียดทุกอย่างสามารถแก้ไขได้ แต่จะมีประโยชน์น้อยกว่ามากเมื่อตรวจสอบปัญหาที่เกิดขึ้นในระดับของเซสชัน TLS เอง พร็อกซีของคุณจะเปลี่ยนและซ่อนสิ่งที่เกิดขึ้นครั้งแรกในระดับนั้น
jmd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.