Re: Need help for enabling TLS2 using IKVM
Pradeep Ramaswamy <[email protected]> Fri, 28 Sep 2018 05:31:03 +0000
| Newsgroups | gmane.comp.java.ikvm.devel |
|---|---|
| Message-ID | <HE1PR0601MB26495AC1A5B9A2CD88A890B59AEC0@HE1PR0601MB2649.eurprd06.prod.outlook.com> |
--===============1277698729093224118==
Content-Language: en-US
Content-Type: multipart/alternative;
boundary="_000_HE1PR0601MB26495AC1A5B9A2CD88A890B59AEC0HE1PR0601MB2649_"
--_000_HE1PR0601MB26495AC1A5B9A2CD88A890B59AEC0HE1PR0601MB2649_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi,
Below are the approaches we tried but at the end we could not able to send =
the transaction using TLS2.
Approach1:
1. Upgraded .net framework from 4.0 to 4.5 and directly calle=
d the exposed java web services using .Net client without using IKVM. This =
resulted in sending the transaction using TSL2.0 and we could able to confi=
rm this by checking the server log for the transaction details.
Note: JDK used here for creating the jar file is 1.7
Approach3:
1. Upgraded JDK 1.7 to 1.8 , created separate webservice cl=
ient using eclipse and here also we were able to consume the webservices wh=
ich is exposed directly without using IKVM ( similar to #1) .
Approach3:
1 . We tried to consume the exposed java web services using j=
ava client ( jar files created using JDK 1.7 or 1.8) and then covert this j=
ava client to dll using IKVM. Once the IKVM produced the dll , we consumed =
this dll in .net client and when the transaction was initiated then we got =
below error.
Note: JDK used here for creating the jar file is 1.7 or 1.8
Error log snippet:
lKMCBndFLGCommsConvertorUtil l=
ogMsg Ikke forventet exception oppst=C3=A5tt i metode executeLogon and caus=
e is due to com.sun.xml.internal.ws.client.ClientTransportException: HTTP t=
ransport error: javax.net.ssl.SSLHandshakeException: Received fatal alert: =
handshake_failure
at com.sun.xml.internal.ws.transport.http.client.HttpClientTr=
ansport.getOutput(HttpClientTransport.java:117)
at com.sun.xml.internal.ws.transport.http.client.HttpTranspor=
tPipe.process(HttpTransportPipe.java:208)
at com.sun.xml.internal.ws.transport.http.client.HttpTranspor=
tPipe.processRequest(HttpTransportPipe.java:130)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.pr=
ocessRequest(DeferredTransportPipe.java:124)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:=
1121)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:1=
035)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:10=
04)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:=
863)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:448)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEISt=
ub.java:178)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invok=
e(SyncMethodHandler.java:93)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invok=
e(SyncMethodHandler.java:77)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.=
java:147)
at com.sun.proxy.$Proxy34.genericWS(Unknown Source)
at com.edb.fs.enterprise.kmc.srv.service.kmsportclient.KMCBnd=
InitiateBeanServiceImpl.executeLogon(KMCBndInitiateBeanServiceImpl.java:40)
at no.fellesdata.fdfront.fdcash.session.initiate.client.BndIn=
itiate.executeLogon(BndInitiate.java:232)
at cli.vfs.KasseMemorialLogon.Start(KasseMemorilalLogon.vb:42=
)
at cli.vfs.ClsTellerAdm.StartLogOn(vfsTellerAdm_cls.vb:88)
at cli.vtd.vtdMain.Main(vtdmain_bas.vb:115)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: hands=
hake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.jav=
a:2011)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.ja=
va:1114)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSL=
SocketImpl.java:1364)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImp=
l.java:1391)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImp=
l.java:1376)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsC=
lient.java:564)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnect=
ion.connect(AbstractDelegateHttpsURLConnection.java:186)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStrea=
m0(HttpURLConnection.java:1284)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStrea=
m(HttpURLConnection.java:1257)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutpu=
tStream(HttpsURLConnectionImpl.java:250)
at com.sun.xml.internal.ws.transport.http.client.HttpClientTr=
ansport.getOutput(HttpClientTransport.java:104)
Conclusion based on our approaches:
When we convert the java client ( jar files ) using IKVM to dll and consume=
this either in .net 4.0 or 4.5 we are getting "Received fatal alert: hands=
hake_failure" .
Can some one suggest me what is the best way to go forward on this issue. W=
e are struck on this for past 2 weeks . Any suggestion is welcomed for us.
Regards
Pradeep R
From: David Thielen <[email protected]>
Sent: Thursday, September 20, 2018 6:33 PM
To: Pradeep Ramaswamy <[email protected]>; [email protected]=
ourceforge.net
Subject: RE: Need help for enabling TLS2 using IKVM
I'm not sure but I think TLS2 is the default for .NET 4.5.2 and later. So y=
ou may just need to get on the latest .NET.
From: Pradeep Ramaswamy <[email protected]<mailto:Pradeep.Ramaswam=
[email protected]>>
Sent: Thursday, September 20, 2018 4:02 AM
To: [email protected]<mailto:[email protected]=
ceforge.net>
Subject: [Ikvm-developers] Need help for enabling TLS2 using IKVM
Hi,
We are using IKVM for communicating .net to java and from Java we call SOAP=
webservices calls.
IKVM Current version: ikvm-7.2.4630.5
Current problem:
As IBM has stop the support for TLS1, we need to configure TLS2 going forwa=
rd. Can you please let me know how to enable TLS2 in IKVM.
Thanks
Pradeep R
--_000_HE1PR0601MB26495AC1A5B9A2CD88A890B59AEC0HE1PR0601MB2649_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Below are the approaches we tried but at the end we =
could not able to send the transaction using TLS2.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><u>Approach1:<o:p></o:p></u></b></p>
<p class=3D"MsoNormal"> &nbs=
p; 1. Upgraded .net framework from 4.0 to 4.5 and d=
irectly called the exposed java web services using .Net client without usin=
g IKVM. This resulted in sending the transaction using TSL2.0 and we could =
able to confirm this by
checking the server log for the transaction details.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Note: JDK used here for creating the jar file is 1.7=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><u>Approach3:<o:p></o:p></u></b></p>
<p class=3D"MsoNormal"> &nbs=
p; 1. Upgraded JDK 1.7 to 1.8 , created  =
;separate webservice client using eclipse and here also we were able to con=
sume the webservices which is exposed directly without using IKVM ( similar=
to #1) .<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><u>Approach3:</u></b><o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; 1 . We tried to consume the exposed java web ser=
vices using java client ( jar files created using JDK 1.7 or 1.8) and then =
covert this java client to dll using IKVM. Once the IKVM produced the dll ,=
we consumed this dll in
.net client and when the transaction was initiated then we got below error=
. <o:p>
</o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Note: JDK used here for creating the jar file is 1.7=
or 1.8<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><u>Error log snippet:<o:p></o:p></u></b></p>
<p class=3D"MsoNormal"> &nbs=
p; lKMCBndFLGCommsCo=
nvertorUtil &nbs=
p; &=
nbsp; logMsg Ikke forventet exception oppst=C3=A5tt i metode executeL=
ogon and cause is due to com.sun.xml.internal.ws.client.ClientTransportExce=
ption: HTTP transport error:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failu=
re<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.transport.http.client=
.HttpClientTransport.getOutput(HttpClientTransport.java:117)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.transport.http.client=
.HttpTransportPipe.process(HttpTransportPipe.java:208)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.transport.http.client=
.HttpTransportPipe.processRequest(HttpTransportPipe.java:130)<o:p></o:p></p=
>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.transport.DeferredTra=
nsportPipe.processRequest(DeferredTransportPipe.java:124)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.api.pipe.Fiber.__doRu=
n(Fiber.java:1121)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.api.pipe.Fiber._doRun=
(Fiber.java:1035)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(=
Fiber.java:1004)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.api.pipe.Fiber.runSyn=
c(Fiber.java:863)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.client.Stub.process(S=
tub.java:448)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.client.sei.SEIStub.do=
Process(SEIStub.java:178)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.client.sei.SyncMethod=
Handler.invoke(SyncMethodHandler.java:93)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.client.sei.SyncMethod=
Handler.invoke(SyncMethodHandler.java:77)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.client.sei.SEIStub.in=
voke(SEIStub.java:147)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.proxy.$Proxy34.genericWS(Unknown Sour=
ce)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.edb.fs.enterprise.kmc.srv.service.kmsport=
client.KMCBndInitiateBeanServiceImpl.executeLogon(KMCBndInitiateBeanService=
Impl.java:40)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at no.fellesdata.fdfront.fdcash.session.initiate=
.client.BndInitiate.executeLogon(BndInitiate.java:232)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at cli.vfs.KasseMemorialLogon.Start(KasseMemoril=
alLogon.vb:42)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at cli.vfs.ClsTellerAdm.StartLogOn(vfsTellerAdm_=
cls.vb:88)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at cli.vtd.vtdMain.Main(vtdmain_bas.vb:115)<o:p>=
</o:p></p>
<p class=3D"MsoNormal">Caused by: javax.net.ssl.SSLHandshakeException: Rece=
ived fatal alert: handshake_failure<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.Alerts.getSSLException(Alert=
s.java:192)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.Alerts.getSSLException(Alert=
s.java:154)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.SSLSocketImpl.recvAlert(SSLS=
ocketImpl.java:2011)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.SSLSocketImpl.readRecord(SSL=
SocketImpl.java:1114)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.SSLSocketImpl.performInitial=
Handshake(SSLSocketImpl.java:1364)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.SSLSocketImpl.startHandshake=
(SSLSocketImpl.java:1391)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.security.ssl.SSLSocketImpl.startHandshake=
(SSLSocketImpl.java:1376)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.net.www.protocol.https.HttpsClient.afterC=
onnect(HttpsClient.java:564)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.net.www.protocol.https.AbstractDelegateHt=
tpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:186)<o:p><=
/o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.net.www.protocol.http.HttpURLConnection.g=
etOutputStream0(HttpURLConnection.java:1284)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.net.www.protocol.http.HttpURLConnection.g=
etOutputStream(HttpURLConnection.java:1257)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at sun.net.www.protocol.https.HttpsURLConnection=
Impl.getOutputStream(HttpsURLConnectionImpl.java:250)<o:p></o:p></p>
<p class=3D"MsoNormal"> &nbs=
p; at com.sun.xml.internal.ws.transport.http.client=
.HttpClientTransport.getOutput(HttpClientTransport.java:104)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><u>Conclusion based on our approaches:<o:p></o:p>=
</u></b></p>
<p class=3D"MsoNormal">When we convert the java client ( jar files ) using =
IKVM to dll and consume this either in .net 4.0 or 4.5 we are getting ̶=
0;Received fatal alert: handshake_failure” .
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Can some one suggest me what is the best way to go f=
orward on this issue. We are struck on this for past 2 weeks . Any suggesti=
on is welcomed for us.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Regards<o:p></o:p></p>
<p class=3D"MsoNormal">Pradeep R<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> David Thielen <[email protected]>=
; <br>
<b>Sent:</b> Thursday, September 20, 2018 6:33 PM<br>
<b>To:</b> Pradeep Ramaswamy <[email protected]>; ikvm-devel=
[email protected]<br>
<b>Subject:</b> RE: Need help for enabling TLS2 using IKVM<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">I’m not sure but I think TLS2 is the default f=
or .NET 4.5.2 and later. So you may just need to get on the latest .NET.<o:=
p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Pradeep Ramaswamy <<a href=3D"mailto=
:[email protected]">[email protected]</a>>
<br>
<b>Sent:</b> Thursday, September 20, 2018 4:02 AM<br>
<b>To:</b> <a href=3D"mailto:[email protected]">ikvm-de=
[email protected]</a><br>
<b>Subject:</b> [Ikvm-developers] Need help for enabling TLS2 using IKVM<o:=
p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">We are using IKVM for communicating .net to java and=
from Java we call SOAP webservices calls.
<o:p></o:p></p>
<p class=3D"MsoNormal"><b><u><o:p><span style=3D"text-decoration:none">&nbs=
p;</span></o:p></u></b></p>
<p class=3D"MsoNormal"><b><u>IKVM Current version: </u></b>ikvm-7.2.4630.5<=
o:p></o:p></p>
<p class=3D"MsoNormal"><b><u><o:p><span style=3D"text-decoration:none">&nbs=
p;</span></o:p></u></b></p>
<p class=3D"MsoNormal"><b><u>Current problem:<o:p></o:p></u></b></p>
<p class=3D"MsoNormal">As IBM has stop the support for TLS1, we need to con=
figure TLS2 going forward. Can you please let me know how to enable TLS2 in=
IKVM.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.5pt;font-family:"=
;Arial",sans-serif;color:#063954">Thanks<o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:#063954">Prade=
ep R<o:p></o:p></span></p>
</div>
</body>
</html>
--_000_HE1PR0601MB26495AC1A5B9A2CD88A890B59AEC0HE1PR0601MB2649_--
--===============1277698729093224118==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============1277698729093224118==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Ikvm-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ikvm-developers
--===============1277698729093224118==--