From 78efa6f89e5a3c51be9eae5dfcd59c6c4fa69b09 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Wed, 2 Nov 2022 00:45:41 +0300 Subject: [PATCH] python ssl server --- .../2022/new-ssl-cert-and-private-key.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 content/posts/2022/new-ssl-cert-and-private-key.md diff --git a/content/posts/2022/new-ssl-cert-and-private-key.md b/content/posts/2022/new-ssl-cert-and-private-key.md new file mode 100644 index 0000000..235a1c1 --- /dev/null +++ b/content/posts/2022/new-ssl-cert-and-private-key.md @@ -0,0 +1,36 @@ +--- +title: "Локальный SSL HTTP сервер на Python" +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://**.