python快速搭建https服务器

news/2024/9/28 12:17:41 标签: https, 服务器, 网络协议

本文介绍了在ubuntu操作系统上搭建https服务器的过程

在一台连接到网络的主机上搭建https服务器,假设该主机的ip地址为:10.98.69.174

创建证书example.crt和私钥example.key

openssl req -newkey rsa:2048 -nodes -keyout example.key -x509 -days 365 -out example.crt

使用命令可以查看证书详情

openssl x509 -in example.crt -text -noout

编辑python脚本文件https_server.py

import ssl
from http.server import HTTPServer, BaseHTTPRequestHandler

class MyRequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        pass

if __name__ == '__main__':
    context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
    context.load_cert_chain(certfile='./example.crt', keyfile="./example.key")

    ciphers = 'ECDHE-ECDSA-AES128-GCM-SHA256:TLS_CHACHA20_POLY1305_SHA256...'
    context.set_ciphers(ciphers)

    ciphers_suit = context.get_ciphers()
    for i in range(len(ciphers_suit)):
        print(f"{i}: {ciphers_suit[i]['name']}")

    httpd = HTTPServer(('0.0.0.0', 4443), MyRequestHandler)
    httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
    httpd.serve_forever()

然后运行python脚本

python3 https_server.py

可以在局域网内通过火狐浏览器访问 https://10.98.69.174:4443 查看https服务器是否已经生效

本文在写作中,以下文章给作者带来了很大的帮助,特此表示感谢

快速架设Python HTTPS服务 - 又是火星人 - 博客园


http://www.niftyadmin.cn/n/5681083.html

相关文章

Karmada新版本发布,支持联邦应用跨集群滚动升级

摘要:本次升级支持联邦应用跨集群滚动升级,使用户版本发布流程更加灵活可控;透明同事karmadactl 新增了多项运维能力,提供独特的多集群运维体验。 本文分享自华为云社区 《Karmada v1.11 版本发布!新增应用跨集群滚动升…

C/C++语言基础--C++运算符重载以及其重载限制

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 通过前面几节,我们介绍了C的类与对象、构造与析构函数、拷贝、成员变量、特殊变量等相关知识,这一篇将详细介绍了C的运算符重载,我感觉这是C的一个很伟大的发明&#xff0…

g2o 中定义好的常用顶点类型

前言 一般来说定义 Vertex 需要重写这几个函数 // 读盘、存盘函数,不需要进行读/写操作的话,仅仅声明一下就可以 virtual bool read(std::istream& is); virtual bool write(std::ostream& os) const;// 设置被优化顶点的初始值 virtual void s…

【x**3专享#2】编译 uboot 和 kernel 的文件结构

虚拟机交叉编译环境配置及内核编译步骤说明书 请先查看前篇文章内容 1. 获取虚拟机 IP 地址 打开虚拟机终端,执行以下命令查看虚拟机 IP 地址:ifconfig或者ip addr记录 eth0 或 ens33 等网络接口的 inet 后面的 IP 地址 2. 使用 Xftp 连接虚拟机 打开…

set和map结构的使用

个人主页:敲上瘾-CSDN博客 个人专栏:游戏、数据结构、c语言基础、c学习、算法 目录 一、序列式容器和关联式容器 二、set和multiset 1.insert 2.erase 3.find 4.count 三、map和mapmulti 1.pair 2.insert 3.find 4.operator[ ] 5.erase 6.lo…

后端学习路线

后端学习路线 一、编程语言 至少需要学习一门编程语言,建议学习JAVA和GO语言。 二、数据库 数据库分为关系型数据库和非关系型数据库,区别在于分关系型数据库常用于大数据,而非关系型数据库一般不在大数据方面使用。 关系型数据库&#x…

基于Java开发的(控制台)模拟的多用户多级目录的文件系统

多级文件系统 1 设计目的 为了加深对文件系统内部功能和实现过程的理解,设计一个模拟的多用户多级目录的文件系统,并实现具体的文件物理结构、目录结构以及较为完善的文件操作命令集。 2 设计内容 2.1系统操作 操作命令风格:本文件系统的…

图论(dfs系列) 9/27

一、二维网格图中探测环 题意: 给定一个二维数组grid,如果二维数组中存在一个环,处于环上的值都是相同的。返回true;如果不存在就返回false; 思路: 在以往的dfs搜索中,都是往四个方向去dfs;但是在这一道…