NetworkAdmin.ru
4.77K subscribers
223 photos
26 videos
2 files
509 links
Авторский блог про сетевое и системное администрирование.

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
⚡️ Быстрый HTTPS-сервер без сложных настроек

Иногда нужно быстро поделиться файлами между машинами - без nginx, apache и прочих решений. Для этого можно использовать встроенный веб-сервер python:


python3 -m http.server 8000


Он идеально подходит, когда нужно просто раздать файлы по HTTP: перешел в нужную директорию, запустил сервер, скачал - готово.

Но недавно понадобился HTTPS-сервер, так как приложение отказывалось работать по обычному HTTP. Настраивать nginx для этого не хотелось, и, как оказалось, все можно сделать тем же питоном, буквально в несколько строк.

▪️ Генерация самоподписанного сертификата. Создаем файл с ключом и сертификатом:


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


▪️ Минимальный HTTPS-сервер на python. Создаём файл webserver.py:


import http.server, ssl

server_address = ('172.20.0.210', 8000)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(
httpd.socket,
server_side=True,
certfile='localhost.pem',
ssl_version=ssl.PROTOCOL_TLSv1_2
)
httpd.serve_forever()


Запуск:


python3 webserver.py


После этого открываем в браузере:


https://172.20.0.210:8000


и видим содержимое директории (или сайт, если там есть index.html).

#python #https

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥31