Mr Trudeau spoke in Edmonton, Alberta at a vigil for the 57 Canadians killed in the disaster.
The PM promised to pursue answers from Iran, which admitted its military shot down the plane in error, killing all 176 people on board.
Iran had previously rejected suggestions that it was to blame.
“This tragedy should have never occurred, and I want to assure you that you have my full support during this extraordinarily difficult time … you give us purpose to pursue justice and accountability for you,” said Mr Trudeau, addressing a crowd of 2,300 people in a university gym.
“We will not rest until there are answers.”
Mr Trudeau attended the memorial on Sunday, as a second day of anti-government protests against Iran’s leaders erupted.
Iran’s belated admission that it “unintentionally” hit the Boeing plane with missiles has caused outrage at home and abroad.
At protests in Tehran and other cities, there were chants against the leadership and reports of clashes with security forces, which fired tear gas.
The plane, en route to the Ukrainian capital, Kyiv, was shot down near Tehran last Wednesday, shortly after Iran had launched missiles at two airbases housing US forces in Iraq.
Those strikes were a response to the US killing of senior Iranian commander Qasem Soleimani in a drone strike in Baghdad on 3 January.
Dozens of Iranians and Canadians, as well as nationals from Ukraine, the UK, Afghanistan and Sweden died on the plane.
Iran has invited Canada, Ukraine and Boeing to take part in an investigation into the disaster. Those responsible, Iran says, will be held accountable and prosecuted. BBC