Похоже, ваша проблема не в Hyper или Rust, а в TLS. По умолчанию, когда вы устанавливаете sh соединение через HTTPS, клиент проверяет подлинность сертификата сервера. Сертификат должен быть подписан доверенным органом: подробности см., Например, на этой странице .
. Для проверки используйте curl
:
$ curl https://localhost:1337/echo -X POST -v --insecure
...
* SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.
...
< HTTP/2 200
< date: Sun, 12 Apr 2020 12:45:03 GMT
<
* 1008. * Так что это работает отлично. Если вы уберете флаг
--insecure
,
curl
откажется установить sh соединение:
$ curl https://localhost:1337/echo -X POST -v
...
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Чтобы это исправить, вам нужно:
- Использовать правильно подписанный сертификат вместо самозаверяющего сертификата, или
- Настройте клиента на отсутствие проверки сертификата, или
- Настройте клиента на доверие к вашему самозаверяющему сертификату.
В производстве ваш единственный выбор (1). Пока вы развиваетесь, вы можете избежать неприятностей с (2) или (3).