ฉันมีเว็บแอปพลิเคชันที่ปรับใช้กับเซิร์ฟเวอร์ Tomcat ฉันเชื่อมต่อกับเบราว์เซอร์ Chrome ด้วย HTTPS แต่ฉันมีข้อผิดพลาดในการถอดรหัสระหว่างการจับมือ TLS ที่ฝั่งไคลเอ็นต์หลังจาก ServerKeyExchange
ใบรับรอง (3 ระดับ):
ใบรับรองเซิร์ฟเวอร์ ลงนามโดย...
ใบรับรอง CA ลงนามโดย...
ใบรับรองหลัก (ลงนามด้วยตนเอง)
ฉันตรวจสอบใบรับรองด้วย openssl และดูเหมือนว่าจะใช้ได้ (chain.cer มี CA และใบรับรองหลัก):
$ openssl ตรวจสอบ -verbose -CAfile chain.cer server.cer
server.cer: ตกลง
ถ้าฉันทดสอบการเชื่อมต่อกับ OpenSSL ฉันได้รับข้อผิดพลาดหลังจากไคลเอ็นต์อ่าน ServerKeyExchange:
opensl.exe s_client -CAfile chain.cer -showcerts -state -msg server.net:8443
เอาต์พุต:
เชื่อมต่อแล้ว(00000004)
>>> ??? [ความยาว 0005]
16 03 01 01 4ฉ
>>> TLS 1.3, Handshake [ความยาว 014f], ClientHello
01 00 01 4b 03 03 81 63 a4 15 45 bf 7f 9b 07 8f ...
<<< ??? [ความยาว 0005]
16 03 03 09 14
<<< TLS 1.3, Handshake [ความยาว 0055], ServerHello
02 00 00 51 03 03 60 เอฟ d0 8b 1c d7 9a 78 2d d4 ...
<<< TLS 1.2, Handshake [ความยาว 07ee], ใบรับรอง
0b 00 07 อี 00 07 e7 00 07 e4 30 82 07 e0 30 82 ...
ความลึก=2 O = กลุ่ม Amadeus IT SA, CN = amarootca2
ตรวจสอบผลตอบแทน:1
ความลึก=1 O = Amadeus IT group SA, CN = amacatech3
ตรวจสอบผลตอบแทน:1
ความลึก=0 C = FR, L = นีซ, O = การประมวลผลข้อมูล Amadeus, OU = NIS, CN = nceiptapas04.nce.amadeus.net
ตรวจสอบผลตอบแทน:1
<<< TLS 1.2, Handshake [ความยาว 00cd], ServerKeyExchange
0c 00 00 c9 03 00 17 41 04 82 07 58 e1 ซีดี 42 40 ...
>>> ??? [ความยาว 0005]
15 03 03 00 02
>>> TLS 1.2, Alert [ความยาว 0002], decrypt_error ร้ายแรง
02 33
34359738384:ข้อผิดพลาด:04091077:รูทีน rsa:int_rsa_verify:ความยาวลายเซ็นไม่ถูกต้อง:crypto/rsa/rsa_sign.c:132:
34359738384:ข้อผิดพลาด:1416D07B:รูทีน SSL:tls_process_key_exchange:ลายเซ็นไม่ถูกต้อง:ssl/statem/statem_clnt.c:2405:
---
ไคลเอ็นต์ไม่สามารถถอดรหัสพารามิเตอร์ DH ที่ส่งโดยเซิร์ฟเวอร์ได้หรือไม่ ทำไม
นี่คือรายละเอียดของ Wireshark จาก ServerKeyExchange:
อัลกอริทึมลายเซ็น: rsa_pss_rsae_sha256 (0x0804)
ความยาวลายเซ็น: 128
ฉันมีแอปพลิเคชันเว็บอื่นแต่ทำงานได้อย่างถูกต้องโดยที่ฉันมีอัลกอริทึมลายเซ็นเหมือนกัน แต่ความยาวของลายเซ็น: 256 หรือความยาวนี้ไม่เกี่ยวข้อง