'Missing required parameter: domain']); return; } exec("sudo certbot certificates --cert-name $domain | grep 'Expiry' | sed 's/..:..:..+..:..../\n/g ' | sed 's/days)//g' | sed 's/[[:space:]]//g' | cut -d: -f2", $phpOutput, $phpReturnCode); $sslData = implode("\n",$phpOutput); /* $certFile = "/etc/letsencrypt/live/$domain/fullchain.pem"; if (!file_exists($certFile)) { error_log("certfile: " . $certFile); http_response_code(404); echo json_encode(['error' => 'SSL certificate not found']); return; } $certData = openssl_x509_parse(file_get_contents($certFile)); if (!$certData || !isset($certData['validTo_time_t'])) { http_response_code(500); echo json_encode(['error' => 'Failed to parse SSL certificate']); return; } $expiryTimestamp = $certData['validTo_time_t']; $expiryDate = date('Y-m-d', $expiryTimestamp); $daysRemaining = ceil(($expiryTimestamp - time()) / 86400); */ echo json_encode([ 'ssl_expiry' => $sslData[0], 'ssl_remaining' => $sslData[1] ]); } }