I have a 2008 Jeep Liberty that has had the check engine light come on many times over the years for P0456 Evap leak. The problem seems to be rust forming where the gas cap gets placed. I remove the rust, throw some grease on it, and it clears the code for a while, this last time it lasted 8 months. It's not an intermitted thing, as I've left the check engine light on for 6+ months before having to deal with it for inspections. Removing the rust always seems to clear the code. Rust eventually begins to form again after removing and applying grease. I've tried painting it, but the paint eventually comes off and rust forms again. I live in an area that gets lots of precipitation, snow, and salt spread on the roads.
What would work good at stopping the rust here? An enamel spray? Epoxy? I need something that will bond well with the iron but also can tolerate some friction.