Files
SYNC_API/sync_api/start_https_9443.py

68 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""
Servidor HTTPS para API FastAPI en puerto 9443
"""
import uvicorn
import ssl
import sys
import os
from pathlib import Path
def main():
# Configuración SSL
ssl_keyfile = "ssl/private.key"
ssl_certfile = "ssl/certificate.crt"
# Verificar que existan los archivos SSL
if not os.path.exists(ssl_keyfile):
print(f"❌ Error: No se encuentra {ssl_keyfile}")
sys.exit(1)
if not os.path.exists(ssl_certfile):
print(f"❌ Error: No se encuentra {ssl_certfile}")
sys.exit(1)
print("🔐 Iniciando servidor HTTPS en puerto 9443...")
print(f"📁 Certificado: {ssl_certfile}")
print(f"🔑 Llave privada: {ssl_keyfile}")
print("🌐 URLs disponibles:")
print(" - https://104.192.7.152:9443/docs")
print(" - https://cpanel-a24.aduanasoft.com:9443/docs")
print(" - https://104.192.7.152:9443/api/health")
print(" - https://104.192.7.152:9443/api/nodes")
try:
# Configurar SSL context
ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(ssl_certfile, ssl_keyfile)
# Iniciar servidor
uvicorn.run(
"main:app",
host="0.0.0.0",
port=9443,
ssl_keyfile=ssl_keyfile,
ssl_certfile=ssl_certfile,
reload=False,
workers=1,
access_log=True,
log_level="info"
)
except Exception as e:
print(f"❌ Error al iniciar servidor HTTPS: {e}")
print("\n🔧 Diagnóstico:")
# Diagnóstico SSL
try:
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(ssl_certfile, ssl_keyfile)
print("✅ Certificados SSL válidos")
except Exception as ssl_error:
print(f"❌ Error en certificados SSL: {ssl_error}")
sys.exit(1)
if __name__ == "__main__":
main()