best thing I've found to do is sand them to bare metal, set them out long enough to get an even coat of surface rust, spray with phosphoric acid (stops-rust, rust conversion coat etc) let that sit till it's dry, most often that will turn into a very durable heat proof black, but it isn't always even, so spray it wth high temp paint of your choice
sanding is optional if they have a smooth coat of powdery surface rust, can't be flaky though, that phosphoric likes rust, I buy it in quart spray bottles, and use it on anything that I want to prevent from rusting.
DO NOT SPRAY OR SPILL ON CONCRETE it reacts with the lime, and the next thing you know you have a big pile of grey foam and a hole in your driveway. I knew about that, but didn't think it would hurt to set the bottle down on the drive, till it got knocked over and spilled...
Did my pipes a few years ago that way, and they've held up real well, just went through and touched them up a couple weeks ago because it raining and they were starting to look dirty, had a few stone chips on the lower side and a slight bit of fading I never noticed till I sprayed them.
ken