from fastapi import FastAPI
import ssl
import socket
from datetime import datetime

app = FastAPI()

@app.get("/ssl/{host}")
def ssl_expiry(host: str):
    context = ssl.create_default_context()

    with socket.create_connection((host, 443), timeout=10) as sock:
        with context.wrap_socket(sock, server_hostname=host) as ssock:
            cert = ssock.getpeercert()

    expiry = datetime.strptime(cert["notAfter"], "%b %d %H:%M:%S %Y %Z")
    days_remaining = (expiry - datetime.utcnow()).days

    return {
        "host": host,
        "expiry": expiry.strftime("%Y-%m-%d %H:%M:%S"),
        "days_remaining": days_remaining,
    }
