Как разместить django с grpc в Production с ssl?

Я использую Django с grpc, для этого я использую django-rpc-framework.

Для разработки я использовал python manage.py grpcrunserver --dev.

Теперь мне нужно заняться производством. Могу ли я использовать

python manage.py grpcrunserver 127.0.0.1:8000 --max-workers 5

для производства, если да, то как? Потому что я не знаю, как запустить его в отделенном режиме.

Я думал использовать hypercorn, потому что hypercorn работает с http2, но он также требует ssl сертификат, что хорошо, но когда я подключаю клиента к серверу (я использую самоподписанный сертификат, просто для проверки), я получаю следующую ошибку.

Received error while using the grpc server with kreya(a grpc client)

Для генерации сертификата я выполнил следующую команду.

openssl req -x509 -newkey rsa:4096 -days 3650 -nodes -keyout ca-key.pem -out ca-cert.pem

openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem

openssl x509 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem

Чтобы запустить сервер, я попробовал следующую команду.

hypercorn --keyfile server-key.pem --certfile server-cert.pem kumpali.asgi:application В kreya я использую файл ca-cert.pem в качестве сертификата.

Когда я попытался подключить свой сервер к приложению flutter, я получил следующую ошибку.

Error: gRPC Error (code: 14, codeName: UNAVAILABLE, message: Error connecting: HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: Hostname mismatch(handshake.cc:359)), details: null, rawResponse: null, trailers: {})

Вернуться на верх