Personally, I've found the best way is to Google lists and lists of proxies as have been suggested above then run them through a bot that does a fake SSL + POST request and check the response. This will filter the non-working ones, but also the useless ones like CoDeeN. It has worked pretty well for me so far. Log time to get the response and use a MaxMind DB for the country, all in a MySQL database. Then set this up in a cron and all the proxies you have should stay good. You need to update the lists every day or so as they do die quickly.