Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

WSitong/https-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https-server

a simple python https server

模块说明

class HTTPSServer(http.server.HTTPServer) 单线程HTTPS服务器
class ThreadingHTTPSServer(socketserver.ThreadingMixIn, HTTPSServer) 多线程HTTPS服务器

用法

import sys
from https_server import ThreadingHTTPSServer
from http.server import SimpleHTTPRequestHandler

port = 8000
ssl_cert_config = ('ssl/server.crt', 'ssl/server.key', '')
with ThreadingHTTPSServer(('0.0.0.0', port), SimpleHTTPRequestHandler, *ssl_cert_config) as httpd:
    print(f'Serving HTTPS on 0.0.0.0 port {port}')
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        print('Keyboard interrupt received, exiting.')
        sys.exit(0)

OpenSSL生成自签名证书

安装OpenSSL

官网安装OpenSSL:
https://www.openssl.org/
Windows便携版安装OpenSSL:
http://slproweb.com/products/Win32OpenSSL.html

生成证书

首先使用openssl执行如下命令生成一个key

openssl genrsa -des3 -out server.key 2048

建议去除key文件密码,因为每次reload nginx配置时候都要你验证这个PAM密码

openssl rsa -in server.key -out nginx.key

根据这个key文件生成证书请求文件nginx.csr

openssl req -new -key nginx.key -out nginx.csr

最后根据这2个文件生成10年crt证书文件

openssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt

如果需要用pfx 可以用以下命令生成

openssl pkcs12 -export -inkey nginx.key -in nginx.crt -out nginx.pfx

About

a simple python https server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages