# taken from https://gist.github.com/dergachev/7028596

#

# generate server.xml with the following command:

# openssl req -new -x509 -keyout https_svr_key.pem -out https_svr_key.pem -days 3650 -nodes

#

# run as follows:

# python https_svr.py

#

# then in your browser, visit:

# https://localhost:4443

#

import BaseHTTPServer

import SimpleHTTPServer

import os

import socket

import ssl

script_home = os.path.dirname(os.path.abspath(__file__))

ip = [(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) \

for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]

port = 4443

def main():

print ("simple https server, address:%s:%d, document root:%s" % (ip, port, script_home))

httpd = BaseHTTPServer.HTTPServer(('0.0.0.0', port), SimpleHTTPServer.SimpleHTTPRequestHandler)

httpd.socket = ssl.wrap_socket(httpd.socket, certfile='./https_svr_key.pem', server_side=True)

 

httpd.serve_forever()

if __name__ == '__main__':

os.chdir(script_home)

main()
 
 
 
 
http:
 
#!/usr/bin/python3
#python version 3.7
import sys

from http import server

from http.server import SimpleHTTPRequestHandler

if sys.argv[1:]:

port = int(sys.argv[1])

else:

port = 8000

server_address = ('127.0.0.1', port)

httpd = server.HTTPServer(server_address, SimpleHTTPRequestHandler)

httpd.serve_forever()

 

 

#!/usr/bin/python3
#python version 3.7
from http import server
from http.server import SimpleHTTPRequestHandler
import socket
import ssl
import sys


if sys.argv[1:]:
port = int(sys.argv[1])
else :
port = 8000

server_address = ("127.0.0.1", port)

context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
#context.load_cert_chain("xxx.pem","xxx.key")#自己添加

httpd = server.HTTPServer(server_address,SimpleHTTPRequestHandler)
httpd.socket = context.wrap_socket(httpd.socket, server_side = True)
httpd.serve_forever()

 

 posted on 2019-11-27 09:42  PoloKey  阅读(2641)  评论(0)    收藏  举报