Preheat oven to 400 degrees.
Slice tomatoes length-wise and arrange on a foil-lined baking sheet.
Drizzle 1 tablespoon of oil over tomatoes, and season with sea salt and pepper.
Roast tomatoes for 45 minutes.
Meanwhile, make the pesto: Pulse basil in a food processor. Add all remaining ingredients, blending until smooth. You may need to scrape down the sides so everything mixes well. Add additional pine nuts or olive oil if you prefer your pesto thicker or thinner.
In a large soup pot, heat remaining 1 tablespoon of oil over medium heat, and add onion, shallot, and garlic. Cook 10 minutes until tender.
Add basil, canned tomatoes, stock, and roasted tomatoes, and bring to a boil.
Simmer covered over medium-low heat for 30 minutes.
Purée the soup until smooth, and serve piping hot, topped with a drizzle of fresh pesto.