Я запускаю свой Django-сервер на локальной машине и пытаюсь подключиться к нему с помощью HTTPie
( https://httpie.org/ ).
Когда я запускаю, python manage.py runsslserver
это дает мне такой вывод:
Starting development server at https://127.0.0.1:8000/
Using SSL certificate: //anaconda/lib/python3.6/site-packages/sslserver/certs/development.crt
Using SSL key: //anaconda/lib/python3.6/site-packages/sslserver/certs/development.key
Quit the server with CONTROL-C.
Когда я пытаюсь подключиться к localhost, используя этот сертификат и ключ в соответствии с документацией :
http --cert=//anaconda/lib/python3.6/site-packages/sslserver/certs/development.crt --cert-key=//anaconda/lib/python3.6/site-packages/sslserver/certs/development.key https://127.0.0.1:8000/
Я получаю ошибку рукопожатия:
http: error: SSLError: ("bad handshake: Error([('SSL
routines','ssl3_get_server_certificate', 'certificate verify
failed')],)",) while doing GET request to URL: https://127.0.0.1:8000/
Почему это не соединяется?
ssl
certificate
http
Мэтт Д
источник
источник
http
........Ответы:
На основании связанной с вами документации по HTTPie выясняется, что вы
http
неправильно используете команду. В--cert
и-cert-key
опции , которые указаны для проверки подлинности сертификата клиента (вместо маркеров API, например). Я не могу быть уверен, но я предполагаю, что вы не используете аутентификацию сертификата клиента.Предполагая, что у вас есть самозаверяющий сертификат SSL по адресу
//anaconda/lib/python3.6/site-packages/sslserver/certs/development.crt
, у вас есть два основных варианта:Рассматривайте самоподписанный сертификат как центр сертификации
или, с
wget
илиcurl
:Пропустить проверку SSL
Также обратите внимание, что существуют и другие, наиболее часто используемые http-клиенты командной строки:
Давайте зашифруем
Наконец, вы можете рассмотреть вопрос о получении действительного сертификата SSL. Let's Encrypt предлагает их бесплатно, и есть много других CA, которые вы могли бы рассмотреть, если вы хотите кому-то заплатить. При наличии действительного сертификата SSL (и действительного имени DNS) никакие дополнительные параметры не требуются ни для одного из упомянутых клиентов.
источник