Hi All,
We are embedding H2 in java process. We use h2 1.4.192 version. We use
jdk1_8_0_u91. We are using it in SSL mode.
We start H2 like this in the code
svrArgs = *new* String[] { "-tcpSSL", "-tcpPort", portNum,"-tcpAllowOthers"
};
Server.*createTcpServer*(svrArgs).start();
When we use jdbc:h2:ssl://localhost:<portnum>/mem: LogDB;DB_CLOSE_DELAY=-1;
as jdbc url, we can see the data. If we try to use
jdbc:h2:tcp://localhost:<portnum>/mem: LogDB;DB_CLOSE_DELAY=-1; it does not
get the data. This is expected behavior.
Now my problem is that If I run following commands to see port status, it
does not find any keystore/certificates. It seems like it is runningas
non-ssl port. Even QA folks used wireshark and they found that data between
client and H2 server is not encrypted even though we use SSL in jdbc url.
.
openssl s_client -debug -connect localhost:<portnum> -tls1
I get this response
CONNECTED(00000003)
write to -0x7ffa64c0 [-0x7ff895d5] (226 bytes => 226 (0xE2))
0000 - 16 03 01 00 dd 01 00 00-d9 03 01 57 a3 d7 19 74 ...........W...t
0010 - bb ff 0d a2 e5 42 cb 17-69 f1 c2 b3 b9 77 0a 3c .....B..i....w.<
0020 - e4 5a dd c6 88 9b 4f 83-9c b5 0e 00 00 66 c0 14 .Z....O......f..
0030 - c0 0a c0 22 c0 21 00 39-00 38 00 88 00 87 c0 0f ...".!.9.8......
0040 - c0 05 00 35 00 84 c0 12-c0 08 c0 1c c0 1b 00 16 ...5............
0050 - 00 13 c0 0d c0 03 00 0a-c0 13 c0 09 c0 1f c0 1e ................
0060 - 00 33 00 32 00 9a 00 99-00 45 00 44 c0 0e c0 04 .3.2.....E.D....
0070 - 00 2f 00 96 00 41 c0 11-c0 07 c0 0c c0 02 00 05 ./...A..........
0080 - 00 04 00 15 00 12 00 09-00 14 00 11 00 08 00 06 ................
0090 - 00 03 00 ff 02 01 00 00-49 00 0b 00 04 03 00 01 ........I.......
00a0 - 02 00 0a 00 34 00 32 00-0e 00 0d 00 19 00 0b 00 ....4.2.........
00b0 - 0c 00 18 00 09 00 0a 00-16 00 17 00 08 00 06 00 ................
00c0 - 07 00 14 00 15 00 04 00-05 00 12 00 13 00 01 00 ................
00d0 - 02 00 03 00 0f 00 10 00-11 00 23 00 00 00 0f 00 ..........#.....
00e0 - 01 01 ..
read from -0x7ffa64c0 [-0x7ffa6465] (5 bytes => 5 (0x5))
0000 - 15 03 01 00 02 .....
read from -0x7ffa64c0 [-0x7ffa6460] (2 bytes => 2 (0x2))
0000 - 02 28 .(
2675740:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake
failure:s3_pkt.c:1256:SSL alert number 40
2675740:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake
failure:s3_pkt.c:596:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1470355225
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
After this , I added code to set system properties like this to use my own
keystore.
System.*setProperty*("javax.net.ssl.keyStore", keystoreLocation);
System.*setProperty*("javax.net.ssl.keyStorePassword", keystorePassword);
System.*setProperty*("javax.net.ssl.trustStore", truststoreLocation);
System.*setProperty*("javax.net.ssl.trustStorePassword", truststorePassword
);
System.*setProperty*("javax.net.ssl.keyStoreType", "JKS");
System.*setProperty*("javax.net.ssl.trustStoreType", "JKS");
System.*setProperty*("h2.enableAnonymousTLS", "false");
h2Server = Server.*createTcpServer*(svrArgs).start();
But I still don't see any certificates/keystore if I run openssl s_client
-debug -connect localhost:<portnum> -tls1 command.
I know keystore/password is good as I am using it in same java processes to
enable SSL for other embedded servers.
Any idea if it is known issue or what am I doing wrong?
Thanks
Subhash Agrawal.
--
Regards,
Subhash Agrawal
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.