Я разработал службу gRPC, которая развернута в кластере Kubernetes, и я использую grpc-web от клиентов nodejs для подключения к нему. Это означает, что мне нужен прокси перед сервисом. Все отлично работает с этой конфигурацией посланника без SSL, но теперь мне нужно обезопасить соединения, чтобы подготовить ее к работе.
Вот шаги, которые я прошел
1) Сгенерировал ключи, введя мой домен simulation.terrarium.ai
, когда его спросили, используя этот урок
2) Отредактируйте Dockerfile, добавив ключи
FROM envoyproxy/envoy:latest
COPY envoy-proxy-tls.yaml /etc/envoy.yaml
EXPOSE 9091
ADD ./certs/simulation.terrarium.ai.crt /etc/simulation.terrarium.ai.crt
ADD ./certs/simulation.terrarium.ai.key /etc/simulation.terrarium.ai.key
ADD ./certs/rootCA.crt /etc/rootCA.crt
WORKDIR /etc/envoy
CMD /usr/local/bin/envoy -c /etc/envoy.yaml
3) Обновлен конфиг посланника для использования tls на порту
Гораздо проще прочитать этот файл конфигурации с подсветкой, поэтому суть его в этом.
Что происходит
Я делаю звонки на мой сервис, как это
var simService = new SimulationServiceClient(ServerAddress, null, null);
var request = new CreateSpectatorRequest();
request.setApi(API_VERSION);
request.setId(this.clientId);
var metadata = {};
var stream = simService.createSpectator(request, metadata);
stream.on("data", this.onData);
stream.on("status", this.onStatus);
stream.on("end", this.onEnd);
На данный момент у меня есть служба grpc и прокси-сервер-посредник, работающий в кластере kubernetes, так же, как я делал до добавления TLS. Когда я пытаюсь подключиться через браузер, я получаю эту ошибку:
https://simulation.terrarium.ai:9091/v1.SimulationService/SubscribeSpectatorToRegion net::ERR_CERT_AUTHORITY_INVALID
Мне очень трудно отлаживать это, так как я точно не знаю, где могла произойти ошибка. Любая помощь будет оценена!