Leg de varkensham in een ruime kookpan en voeg zoveel water toe dat het vlees onderstaat.
Breng aan de kook, schep eventueel schuim van het oppervlak en voeg de bleekselderij, wortel, ui, laurier en het kruidenbosje toe.
Breng op smaak met zwarte peper en een beetje zout en laat de ham ongeveer 45 minuten zacht koken.
Verwarm de oven voor op 180 °C.
Neem de ham uit de bouillon en laat goed uitlekken. Bewaar een deel van de bouillon voor de saus.
Leg de ham in een ovenschaal, bestrijk met de olie en schenk de port en het sap uit het blik ananas erbij.
Braad de ham ongeveer 40 minuten in de oven en bedruip hem tijdens het braden regelmatig met het vocht uit de schaal.
Neem de ham uit de oven en houd hem warm.
Snijd een deel van de ananasschijven in kleine stukjes en voeg deze aan het braadvocht toe.
Voeg een klein scheutje van de achtergehouden bouillon toe en laat de saus kort inkoken.
Snijd de ham in plakken en leg op iedere plak een halve schijf ananas.
Schep de warme port-ananassaus over of naast het vlees en serveer direct.