#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 简化版HTTPS Web服务器 使用Python内置ssl模块,无需额外依赖 """ import ssl import socket from src.web_server import create_app from get_ip import get_local_ip def create_simple_ssl_context(): """创建简单的SSL上下文,使用自签名证书""" context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) # 检查是否存在SSL证书文件 import os cert_file = "ssl/cert.pem" key_file = "ssl/key.pem" if not os.path.exists(cert_file) or not os.path.exists(key_file): print("❌ SSL证书文件不存在") print("📝 为了使用HTTPS,请选择以下选项之一:") print(" 1. 安装cryptography库: pip install cryptography") print(" 2. 使用HTTP版本: python main_web.py") print(" 3. 手动创建SSL证书") return None try: context.load_cert_chain(cert_file, key_file) return context except Exception as e: print(f"❌ 加载SSL证书失败: {e}") return None def main(): """启动简化版HTTPS服务器""" print("🚀 启动简化版HTTPS服务器...") # 创建Flask应用 app = create_app() # 获取本地IP local_ip = get_local_ip() print(f"🌐 本地IP地址: {local_ip}") print() print("📱 访问地址:") print(f" 桌面端: https://127.0.0.1:5000") print(f" 手机端: https://{local_ip}:5000/mobile/mobile_client.html") print() print("⚠️ 如果看到安全警告,请点击 '高级' -> '继续访问'") print() # 创建SSL上下文 ssl_context = create_simple_ssl_context() if ssl_context is None: print("🔄 回退到HTTP模式...") print(f" 桌面端: http://127.0.0.1:5000") print(f" 手机端: http://{local_ip}:5000/mobile/mobile_client.html") app.run(host='0.0.0.0', port=5000, debug=True) else: print("🔒 HTTPS模式启动成功!") app.run(host='0.0.0.0', port=5000, debug=True, ssl_context=ssl_context) if __name__ == "__main__": main()