【发布时间】:2021-01-31 09:23:02
【问题描述】:
我是 grpc 和 tensorflow 模型服务器的新手。我已经使用 bazel 从源代码构建了 tensorflow 模型服务器(TF2.2)。我正在尝试使用带有 SSL 身份验证的 tensorflow 模型服务器。而且我无法在客户端和服务器之间正确通信。 基本上我试图在两个客户端的帮助下测试我的 TFserver(例如,客户端 A 和客户端 B,位于两台不同的机器上)。客户端 A 使用带有默认 SSL(无聊 SSL)的 grpc,客户端 B 使用带有 OpenSSL 1.1.1g 版本的 GRPC。我的 TFserver 能够与客户端 A 通信,但不能与客户端 B 通信。两个客户端代码都是用 C++ 编写的。并且两个代码相同,只是 SSL 版本不同。
我有以下问题:
-
我也有 tf1.x 版本的 tensorflow 模型服务器二进制文件。在那个二进制文件中,我有这些参数(--enable_secure、--pkcs_password_encrypted、--pkcs_store_path、--pkcs_password_keystore_path、--enable_client_auth 和--ssl_config_file)用于实现 SSL 身份验证。但是当我构建 TF2.2 模型服务二进制文件时,我只得到 --ssl_config_file 参数。所以我的问题是我在构建 TF 服务时是否做错了什么或忘记传递一些参数?
-
每当我使用 --ssl_config_file 参数启动我的 tensorflow 模型服务器时,它都会抛出此错误:
E1017 00:51:53.358762382 5881 ssl_transport_security.cc:1285] 握手失败,出现致命错误 SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER
即使在我的客户端向服务器发送请求之前,此错误也会在每 5-10 秒后反复出现。正如我之前提到的,即使在 TF 模型服务器端出现此错误后,我也能够与客户端 A 通信,即具有默认 SSL 版本 (boringSSL) 的 GRPC 的客户端。但无法与我使用 OpenSSL-1.1.1g 版本构建 GRPC 的客户端 B 通信。可能的原因是什么?
-
我想知道,如何获取 TFmodel 服务器端的日志?我只是获取启动日志和错误日志,但在客户端请求服务器时没有获取日志。我尝试过使用 -v=1,但它对我不起作用。
我发布了我用来启动服务器的命令和错误的服务器启动日志:
Command :
/home/user/TFSERVING/bin/tensorflow_model_server --port=9002 --model_config_file=/home/user/model_config.conf -v=1 --ssl_config_file=/home/user/TFSERVING/conf/tf_ssl.conf
server starting log :
.............................
.............................
I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2020-10-17 01:51:46.912960: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:295] Reading SavedModel debug info (if present) from: /home/dipesh/models/dnn_for_cdssm/1
2020-10-17 01:51:46.916942: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:234] Restoring SavedModel bundle.
2020-10-17 01:51:46.940462: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:183] Running initialization op on SavedModel bundle at path: /home/user/models/dnn_for_cdssm/1
2020-10-17 01:51:46.947514: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:364] SavedModel load for tags { serve }; Status: success: OK. Took 36559 microseconds.
2020-10-17 01:51:46.948348: I tensorflow_serving/servables/tensorflow/saved_model_warmup.cc:105] No warmup data file found at /home/user/models/dnn_for_cdssm/1/assets.extra/tf_serving_warmup_requests
2020-10-17 01:51:46.949083: I tensorflow_serving/core/loader_harness.cc:87] Successfully loaded servable version {name: dnn_for_cdssm version: 1}
2020-10-17 01:51:46.955075: I tensorflow_serving/model_servers/server.cc:355] Running gRPC ModelServer at 0.0.0.0:9002 ...
E1017 01:55:30.274185306 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:55:50.273963581 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:56:10.273677580 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:56:30.273541640 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:56:50.273330934 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:57:05.273176164 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:57:20.273020963 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:57:40.272633395 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
E1017 01:57:55.272573695 11400 ssl_transport_security.cc:1285] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
我知道,我已经问了很多问题,但我完全迷失了在我的客户端和 TF 服务器之间建立安全连接。所以我想涵盖所有可能出错的原因。请帮我完成这项工作。
如果有人需要任何澄清,请告诉我。
提前致谢!!!!
【问题讨论】:
标签: c++ tensorflow ssl grpc