Haffner tjenestegjorde i marinen fra 1824 til 1839, hvoretter han ble kronprins Oscars (den senere kong Oscar IIs) og hans søskens privatlærer i 9 år. Fra 1848 til 1861 fortsatte Haffner sin militære karriere, og ble kommandør. Han var deretter marineminister fra 1861 til 1869, i Frederik Stangs regjering. Han trakk seg fra embetet etter mistillit fra Stortinget. Haffner var den første norske statsråden som har trukket seg på grunn av et mistillitsvotum.