Method
Mix and knead the shell dough
Whisk 150 g of all-purpose flour, 15 g of granulated sugar, 5 g of unsweetened cocoa powder, 1 g of ground cinnamon, and 1 g of fine sea salt in a bowl. Cut 20 g of unsalted butter into small pieces and rub it into the dry mixture until no larger pieces remain. Stir in 30 ml of fresh orange juice and 10 ml of white vinegar. Set aside about 1 teaspoon from 20 ml of cold water for sealing the shells, then add the remaining water gradually until a firm, slightly tacky dough forms. Knead on a clean surface for 6 to 8 minutes, until smooth and springy.
06:00Rest the dough
Shape the dough into a disk, place it under an overturned bowl, and let it rest at room temperature for 30 minutes. This relaxes the gluten so the dough can be rolled paper-thin without snapping back.
30:00Drain the ricotta
Set 500 g of pasteurized whole-milk ricotta in a fine-mesh sieve over a bowl and let it drain for 30 minutes in a cool part of the kitchen. Press gently once or twice with a flexible spatula; the goal is thick ricotta that holds a mound, not a dry or crumbly cheese. Shape the shells during this interval, then return to the ricotta when the timer ends.
30:00Roll and shape the shells

Divide the rested dough evenly, making one piece per serving, and keep the pieces covered as you work. Roll each piece between sheets of parchment into an oval about 10 cm (4 in) long and roughly 1 mm (1/16 in) thick. Wrap each oval around a stainless-steel cannoli tube, overlap the long edges by about 1.5 cm (1/2 in), brush the overlap lightly with the reserved water, and press firmly to seal. Keep dough away from the open ends of the tube so the fried shell can slide off.
Make the orange ricotta filling

After draining, press 500 g of pasteurized whole-milk ricotta through the clean sieve into a bowl for a smooth texture. Fold in 85 g of confectioners' sugar for filling until evenly blended. Finely chop 40 g of candied orange peel, then fold it in with 12 g of orange zest and 45 g of mini semisweet chocolate chips. Spoon the filling into a piping bag fitted with a wide plain tip.
Heat the frying oil
Pour 1000 ml of neutral frying oil into a deep, heavy saucepan so the oil is about 5 cm (2 in) deep, leaving ample room above it. Clip on a deep-fry thermometer and heat over medium heat to 175°C (350°F). Keep the pan stable, the handle turned inward, and the work area dry.
Fry the shells

Lower 2 shaped shells at a time into the 175°C (350°F) oil with tongs. Fry for 2 to 3 minutes, turning once, until the pastry is evenly golden brown, covered with small blisters, and crisp-looking. Start checking at 2 minutes. Keep the oil between 170°C and 180°C (338°F and 356°F), and let it return to temperature between batches. Transfer the shells, still on their tubes, to a wire rack set over a tray.
02:00Unmold and cool the shells
Let each fried shell stand on the rack for 5 minutes. Grip the metal tube with tongs, then gently twist and slide the shell free without squeezing its brittle sides. Return the empty shell to the rack and leave it until completely cool before filling.
05:00Fill and finish the cannoli

Finely chop 40 g of unsalted pistachios and spread them on a small plate. Pipe the ricotta mixture into each completely cool shell from both ends so the center fills without air pockets. Press the exposed filling lightly into the pistachios, arrange the cannoli on a serving platter, sift 7 g of confectioners' sugar for dusting over the tops, and serve immediately while the shells are crisp.
Smart Substitutions
- Can't find pasteurized whole-milk ricotta? Use pasteurized sheep's-milk ricotta for a more traditional tang, or pasteurized full-fat basket ricotta with a similarly firm texture.
- No candied orange peel? Increase the orange zest slightly and use finely chopped dried apricots for a chewy citrus-friendly accent.
- No pistachios? Use finely chopped roasted almonds or hazelnuts on the filled ends.
- Prefer no chocolate? Replace the mini chocolate chips with the same weight of extra candied orange peel.
Tips and Variations
- Roll the dough as evenly and thinly as possible; thick centers stay hard instead of becoming delicate and blistered.
- Use a thermometer and adjust the heat between batches. Oil below 170°C (338°F) makes the shells greasy, while hotter oil darkens them before they crisp through.
- Pipe from both ends rather than forcing filling through one side; the shells are brittle and can crack under pressure.
What Went Wrong?
- Shells are dense with few bubbles Roll the next pieces thinner and confirm the oil is at 175°C (350°F) before frying.
- Seams open in the oil Overlap the dough more generously, moisten only the overlap, and press the seam firmly without wetting the metal tube.
- Ricotta filling is loose If the plain ricotta is still loose after 30 minutes, let it drain for 15 minutes longer before sieving it and adding the sugar, orange, and chocolate.
- Shells resist the tubes Wait the full 5 minutes, grip the tube with tongs, and twist rather than pulling straight against the fragile shell.
Nutrition Estimate
- Fiber: 2 g per serving
- Sodium: 125 mg per serving
Nutrition disclaimer:This recipe is provided for general cooking information only. Nutrition values are estimates and may vary by ingredients, brands, preparation methods, and serving sizes. Check ingredient labels and follow appropriate food-safety practices. This content is not medical, dietary, allergy, or professional food-safety advice.



