Jak znaleźć / ustawić moją nazwę CN na serwerze https z Pythonem?


0

Obecnie używam następującego kodu do wygenerowania lokalnego serwera https

wygenerować crt

openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

server.py

import os
import BaseHTTPServer, SimpleHTTPServer
import ssl
import sys

cdir = os.getcwd()
os.chdir(cdir)

httpd = BaseHTTPServer.HTTPServer(('', 443), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()

po podłączeniu do niego za pomocą urządzenia osadzonego pojawia się błąd

mbedtls_ssl_handshake failed
==> The certificate Common Name (CN) does not match with the expected CN

Jak mogę rozwiązać ten problem?


1
cóż, twój certyfikat CN musi pasować do domeny w adresie URL, do którego nawigujesz w przeglądarce, w przeciwnym razie otrzymasz błędy niedopasowania nazwy.
— Frank Thomas

Czy w środowisku lokalnym powinienem używać http: // local_ip / lub po prostu „localp_ip” lub „https: // local_ip”?
— user217354,

nie będzie można uniknąć niedopasowania CN, jeśli nawigujesz do adresu IP. to musi być nazwa domeny.
— Frank Thomas

Czy wiesz, jak ustawić obsługę lokalnego DNS za pomocą tego skryptu serwera python?
— user217354,

DNS jest zjawiskiem zewnętrznym z perspektywy stron internetowych. Witryna musi nasłuchiwać na adresie IP serwera, więc po prostu upewnij się, że adres IP serwera jest znany przez serwer DNS (używam Bind w mojej sieci LAN) pod daną nazwą. pod warunkiem, że Twój telefon korzysta z serwera DNS, gdy jesteś w sieci LAN (użyj DHCP w sieci bezprzewodowej, aby go wypchnąć), możesz skierować przeglądarkę na stronę, używając nazwy DNS. Ta nazwa musi być zarejestrowana w twoim certyfikacie. Oczywiście działa to tylko w twojej sieci LAN, ale te same zasady dotyczą hostingu publicznego.
— Frank Thomas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.