前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python秒起https 文件服务器

python秒起https 文件服务器

作者头像
懿曲折扇情
发布2022-08-24 13:06:22
2.6K0
发布2022-08-24 13:06:22
举报
文章被收录于专栏:建帅技术分享

python秒起https 文件服务器

代码语言:javascript
复制
前几天博客有个秒级启动http web服务器:
python -m http.server 6666
结果有同事想要求换成https web服务器,所以就有了下文

文章在这里:

python实现秒级启动http、ftp服务器

一、windows版本:

1.安装openssl

openssl官方下载地址

下载msi版本,一路下一步,最后一步全部取消勾选,这里有坑

配置环境变量就和python一样了

第二天我会上传到工作群,openssl安装包

2.生成证书

代码语言:javascript
复制
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

3.启动https服务

代码语言:javascript
复制
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :httpserver.py
    @Author  :gaojs
    @Date    :2022/8/17 22:29
    @Blogs   : https://www.gaojs.com.cn
"""

import http.server
import ssl


def https_web_server():
    """
    https服务器
    :return:
    """
    server_ip = 'localhost'
    # 这里port不要写成字符串,我刚开始给成字符串,报错搞了好一会
    server_port = 5001
    server_address = (server_ip, server_port)
    # 生成证书步骤:
    # openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
    server_cert = "./cert.pem"
    server_key = "./key.pem"

    httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket(
        httpd.socket,
        server_side=True,
        certfile=server_cert,
        keyfile=server_key,
        ssl_version=ssl.PROTOCOL_TLS)

    print("Server HTTPS on " + server_ip + " port " + str(server_port) + " (https://" + server_ip + ":" + str(server_port) + ") ... ")
    httpd.serve_forever()


if __name__ == '__main__':
    https_web_server()

4.结果如下

二、linux版本

1.生成证书

我这里使用的是阿里云的镜像,所以默认自带openssl

代码语言:javascript
复制
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

2.启动https服务器

代码语言:javascript
复制
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :httpserver.py
    @Author  :gaojs
    @Date    :2022/8/17 22:29
    @Blogs   : https://www.gaojs.com.cn
"""

import http.server
import ssl


def https_web_server():
    """
    https服务器
    :return:
    """
    server_ip = 'localhost'
    server_port = 5001
    server_address = (server_ip, server_port)
    # 生成证书步骤:
    # openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
    server_cert = "./cert.pem"
    server_key = "./key.pem"

    httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket(
        httpd.socket,
        server_side=True,
        certfile=server_cert,
        keyfile=server_key,
        ssl_version=ssl.PROTOCOL_TLS)

    print("Server HTTPS on " + server_ip + " port " + str(server_port) + " (https://" + server_ip + ":" + str(server_port) + ") ... ")
    httpd.serve_forever()


if __name__ == '__main__':
    https_web_server()

三、加入腾讯云自媒体分享计划

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1otwwvb9ht470

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python秒起https 文件服务器
    • 一、windows版本:
      • 1.安装openssl
      • 2.生成证书
      • 3.启动https服务
      • 4.结果如下
    • 二、linux版本
      • 1.生成证书
      • 2.启动https服务器
    • 三、加入腾讯云自媒体分享计划
    相关产品与服务
    SSL 证书
    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档