phpIPAM supports SSL offloading via standard X-Forwarded-Proto and X-Forwarded-For HTTP request headers:

public function createURL () {
    // Reset URL for base
    if ($_SERVER['SERVER_PORT'] == "443") {
        $url = "https://$_SERVER[HTTP_HOST]";
    }
    // Reverse proxy doing SSL offloading
    elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
        $url = "https://$_SERVER[SERVER_NAME]";
    }
    elseif (isset($_SERVER['HTTP_X_SECURE_REQUEST']) && $_SERVER['HTTP_X_SECURE_REQUEST'] == 'true') {
        $url = "https://$_SERVER[SERVER_NAME]";
    }
    // Custom port
    elseif ($_SERVER['SERVER_PORT'] != "80") {
        $url = "http://$_SERVER[SERVER_NAME]:$_SERVER[SERVER_PORT]";
    }
    // Normal HTTP ...

However, if your load balancer does not forward this header or SSL offloading is misconfigured, phpIPAM may generate broken HTTP redirect loops or fail to load CSS and JavaScript assets.

To enforce HTTPS scheme detection directly, add this workaround to config.php:

$_SERVER['HTTP_X_FORWARDED_PROTO'] = "https";

Save the configuration, and phpIPAM will now properly generate HTTPS URLs.