2022-11-02 00:45:41 +03:00
|
|
|
|
---
|
2022-11-19 03:36:06 +03:00
|
|
|
|
title: "🌐 Локальный SSL HTTP сервер на Python"
|
2022-11-02 00:45:41 +03:00
|
|
|
|
date: 2022-11-02T00:15:40+03:00
|
|
|
|
|
draft: false
|
|
|
|
|
tags: [privacy, python, tips]
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
При необходимости запустить локальный SSL HTTP сервер,
|
|
|
|
|
необходимо прочитать пост дальше этой строчки.
|
|
|
|
|
|
|
|
|
|
## Генерируем сертификат
|
|
|
|
|
|
|
|
|
|
Для генерации сертификата и приватного ключа необходимо выполнить следующие команды:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
openssl genrsa 2048 > key.pem
|
|
|
|
|
openssl req -x509 -days 365 -new -key key.pem -out cert.pem
|
|
|
|
|
# далее нужно заполнить необходимую информацию
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
В директории появятся два файла: `cert.pem` и `key.pem`.
|
|
|
|
|
|
|
|
|
|
## Запускаем сервер на Python
|
|
|
|
|
|
|
|
|
|
Код сервера:
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
|
|
|
|
import ssl
|
|
|
|
|
|
|
|
|
|
httpd = HTTPServer(('localhost', 1443), SimpleHTTPRequestHandler)
|
|
|
|
|
httpd.socket = ssl.wrap_socket(httpd.socket, certfile='cert.pem', keyfile='key.pem', server_side=True)
|
|
|
|
|
httpd.serve_forever()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Не забываем, что сервер доступен по протоколу **https://**.
|