У меня есть экземпляр Debian GCP, на котором я пытаюсь запустить сервер Python gRPC. У моего экземпляра статический IP-адрес, и я пытаюсь установить безопасный канал между моим удаленным экземпляром (сервером) и локальным клиентом.
Я создал самоподписанные сертификаты OpenSSL на сервере и использую те же сертификаты на клиенте. Для создания я использовал:
openssl req -newkey rsa:2048 -nodes -keyout ML.key -x509 -days 365 -out ML.crt
Мой сервер настроен так (файлы .key и .crt загружаются с open
как 'rb'
):
server_credentials = grpc.ssl_server_credentials(((private_key, certificate_chain,),))
self.server.add_secure_port('0.0.0.0:%d' % self.port, server_credentials)
self.server.start()
Мой клиент настроен как:
host = '78.673.121.16' #this is the instance's static IP
port = 9063
certificate_chain = __load_ssl_certificate() #this loads the certificate file
# create credentials
credentials = grpc.ssl_channel_credentials(root_certificates=certificate_chain)
# create channel using ssl credentials
channel = grpc.secure_channel('{}:{}'.format(host, port), credentials)
а затем я продолжаю делать запрос.
На сервере я столкнулся со следующей ошибкой в ответ на свой запрос:
E1017 17:21:22.964227087 1881 ssl_transport_security.cc:1807] No match found for server name: 78.673.121.16.
Я попытался изменить общее имя (CN) сертификата на localhost
, 0.0.0.0
и 78.673.121.16
, но безуспешно.
Есть какие-нибудь предложения?