US Post Office for sure! They have money orders accepted in many (but not all) countries. Canada being a neighboring country.. I know they FOR SURE have a money order for you. ^^
I know places like Walmart and CVS sell money orders as well, I'm not certain whether it's domestic only. I usually pay rent with a domestic money order from Walmart which costs me 60 cents. If they have international MO as well, I would imagine it's not that expensive. I know they do money transfers at Walmart, but I'm not sure which are the best places for best prices. Call customer service to ask!
Oh, also, here's a link to USPS about international money orders: