我有一个C#本地客户端与Geode一起使用。我现在已经使定位器/服务器端SSL和Swagger和Pulse正常工作。
所以我将以下内容添加到我的原生客户端:
.Set("log-file", "my.log")
.Set("log-level", "all")
.Set("ssl-enabled", "true")
.Set("ssl-keystore", "my.pem")
依此类推,当池工厂尝试连接到SSL定位器时,Geode日志会显示:
[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
所以我从本机客户端目录中获取了cryptoImpl.dll并将其添加到我的客户端目录中,同样的错误。我更改了Windows路径,同样的错误。将dll复制到多个目录并出现相同的错误。
其他人见过这个吗?
答案 0 :(得分:1)
为了使SSL能够与Geode C#Client一起使用,您必须在应用程序的工作目录中包含cryptoImpl.dll,或者将其添加到Windows PATH系统环境变量中。
另一个要求是将OpenSSL v1.0.2添加到Windows PATH系统环境变量中,因为这是cryptoImpl.dll的依赖项。您可以在线搜索从任意数量的镜像下载OpenSSL v1.0.2。
答案 1 :(得分:0)
当我按照@mcmellawatt的说明进行操作并下载64位版本的OpenSSL v1.0.2时,然后将libeay32.dll
和ssleay32.dll
以及cryptoImpl.dll
添加到Windows PATH中,我的本机客户端应用程序开始了没有cannot open library: cryptoImpl
错误。
但是,通过本机客户端SSL example here,与启用了SSL的远程SSL服务器之间没有实际连接,
No locators available ---> Apache.Geode.Client.NoAvailableLocatorsException