Preheat the broiler. Place the orange and lemon zest on a sheet pan, and broil until charred, 2 to 3 minutes, then set aside.
Cover the surface of a small skillet with a square of foil and place the onion, cut-side down, on top. Heat over medium-high heat until well charred, 10 minutes.
Transfer the onion to a cutting board, discarding the foil, and roughly chop.
In a medium saucepan, melt the butter over medium heat. Add the chopped onions and sweat until softened, 8 to 10 minutes. Add the charred citrus zest and the remaining ingredients, then bring to a simmer.
Cook until thickened, 20 minutes. Transfer to a blender and purée until smooth. Keep in the refrigerator for up to 2 weeks, or jar or freeze for up to 1 year.