Я написал небольшой HTTPS-сервер с использованием JAVA HttpsServer.Я доверяю всем сертификатам.Все работает отлично, пока я не включу аутентификацию клиента.Когда это включено, я получаю fatal error: 80: problem wrapping app data
@Throws(IOException::class, ConfigurationException::class)
fun createHttpsServer(port: Int): HttpServer {
val server = HttpsServer.create(InetSocketAddress(port), 50)
server.httpsConfigurator = object : HttpsConfigurator(httpSslContext!!) {
override fun configure(params: HttpsParameters) {
// initialise the SSL context
val c = sslContext
val engine = c.createSSLEngine()
params.cipherSuites = engine.enabledCipherSuites
params.protocols = engine.enabledProtocols
// get the default parameters
val defaultSSLParameters = c.defaultSSLParameters
defaultSSLParameters.needClientAuth = true
params.setSSLParameters(defaultSSLParameters)
}
}
server.executor = Executors.newCachedThreadPool()
server.createContext("/", forwardingHandler)
return server
Журналы SSL:
Algorithm: [SHA1withRSA]
Signature:
0000: 1E 3D A9 54 C7 74 49 D0 AC 45 A4 A2 FD 7B 20 AF .=.T.tI..E.... .
0010: 5A 50 55 EA F7 74 DC EC A5 E6 06 AD E5 CB D3 53 ZPU..t.........S
0020: 8A 26 32 01 4C 45 68 7F 7C 3E 3F 32 3E 11 A5 B2 .&2.LEh..>?2>...
0030: 42 3C A8 E6 12 FC 07 20 AB 11 6C E7 8C AE AA BB B<..... ..l.....
0040: BB AA 63 9C 5C 88 A3 E0 3A 93 A6 76 13 2B D1 9B ..c.\...:..v.+..
0050: 2B DD 44 EF BC F9 F8 E6 9E 1F 18 1A 15 C0 51 58 +.D...........QX
0060: 0D 67 92 D1 1D 75 95 59 D3 A8 5F 21 AF 8D 7E 7F .g...u.Y.._!....
0070: A3 32 3C E7 98 AC 36 E9 25 5E 0F 0E 89 69 42 F3 .2<...6.%^...iB.
0080: 68 4C 49 07 9D 45 BC A1 41 2F 13 89 3D CA 5F 44 hLI..E..A/..=._D
0090: 21 9C 9B C9 AE DE 63 F5 48 1B 42 25 DE E0 0F 19 !.....c.H.B%....
00A0: 92 ED E2 AD A1 EF 14 98 4C 12 D3 73 94 53 CA 1C ........L..s.S..
00B0: 47 4E F6 9C 61 1F 3C DF 80 FD 9F 71 17 E0 97 81 GN..a.<....q....
00C0: 48 0E AD 9B C1 25 C4 A3 92 6A 38 CB 87 9B B5 A7 H....%...j8.....
00D0: 9E C0 78 A0 C2 55 55 FB 5B 0C 13 4F D0 3B EE 86 ..x..UU.[..O.;..
00E0: 68 8F 77 DA 99 D2 85 90 36 52 6C 10 47 03 A7 FD h.w.....6Rl.G...
00F0: 34 BD 7E D4 D3 C9 70 DE C8 01 B6 50 6D 2F 82 21 4.....p....Pm/.!
]
***
*** ECDH ServerKeyExchange
Signature Algorithm SHA512withRSA
Server key: Sun EC public key, 256 bits
public x coord: 15518797577523849726712181417640837349616973214491358941085809023626829095652
public y coord: 60541936111519200887808307614106810785134319765539977787735005161273003220904
parameters: secp256r1 [NIST P-256, X9.62 prime256v1] (1.2.840.10045.3.1.7)
pool-2-thread-1, fatal error: 80: problem wrapping app data
java.lang.RuntimeException: Delegated task threw Exception/Error
%% Invalidated: [Session-1, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
pool-2-thread-1, SEND TLSv1.2 ALERT: fatal, description = internal_error
pool-2-thread-1, WRITE: TLSv1.2 Alert, length = 2
pool-2-thread-1, called closeInbound()
pool-2-thread-1, fatal: engine already closed. Rethrowing javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
pool-2-thread-1, called closeOutbound()
pool-2-thread-1, closeOutboundInternal()
[Raw write]: length = 7
0000: 15 03 03 00 02 02 50
У кого-нибудь есть идеи, что может быть причиной такой ошибки?