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:
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