Il giudice è uno:
sudo ss -tlnp | grep :443ss mostra chi è in ascolto con PID e nome del processo (-t TCP, -l listening, -n porte numeriche, -p processo). Da lì decidi: è un vecchio processo zombie del tuo stesso servizio rimasto appeso dopo un crash? systemctl stop (o kill del PID) e riparti. È un altro web server? Il classico: Apache e nginx installati entrambi, o Caddy che con HTTPS automatico prende 80 e 443 mentre provi ad avviare nginx – lì non è un bug, è un duello: un solo reverse proxy deve possedere le porte, gli altri servizi gli passano dietro. Terzo sospetto: un container Docker con la porta pubblicata (docker ps la mostra nella colonna PORTS; in ss appare come docker-proxy). E se il processo è morto ma la porta risulta occupata ancora per qualche secondo, è il TIME_WAIT del TCP: passa da solo – ripartire troppo in fretta dopo un kill è impazienza, non guasto.