Search code examples
geode

Get Geode Native Client going with SSL


I have a C# native client going with Geode. I've now made the locator / server side SSL and Swagger and Pulse are working fine.

So I added the following to my native client:

.Set("log-file", "my.log")
.Set("log-level", "all")
.Set("ssl-enabled", "true")
.Set("ssl-keystore", "my.pem")

and so on, and when the pool factory tries to connect to the SSL locator, the Geode logs show:

[finer 2017/10/02 16:11:37.176509 GMT Daylight Time ISLPC02:1988 3740 Querying locator at [#.#.#.#:10334] for queue server from group []
[info 2017/10/02 16:11:37.176509 GMT Daylight Time ISLPC02:1988 8744] ClientMetadataService started for pool myPool
[info 2017/10/02 16:11:37.176509 GMT Daylight Time ISLPC02:1988 3740] Using socket send buffer size of 64240.
[info 2017/10/02 16:11:37.176509 GMT Daylight Time ISLPC02:1988 3740] Using socket receive buffer size of 64240.
[debug 2017/10/02 16:11:37.176509 GMT Daylight Time ISLPC02:1988 3740] Creating SSL socket stream
[error 2017/10/02 16:11:37.192108 GMT Daylight Time ISLPC02:1988 3740] cannot open library: cryptoImpl

So I got the cryptoImpl.dll from the native client directory and added it to my client directory, same error. I changed the Windows path, same error. Copied the dll to several directories and same error.

Anyone else seen this please?


Solution

  • In order for SSL to work with the Geode C# Client, you must either include the cryptoImpl.dll in your application's working directory or add it to your Windows PATH system environment variable.

    The other requirement is to add OpenSSL v1.0.2 to your Windows PATH system environment variable, as that is a dependency for cryptoImpl.dll. You can search online to download OpenSSL v1.0.2 from any number of mirrors.