Unlike others he is not too old nor too young.. he definitely fits redjohn's profile... the trick in season 6 episode 5 and 6 is that the people with three dot tattoo are the followers of red john.. and since there was no smiley face when the private investigator is killed justifies that it wasn't redjohn who killed her more over haffner was missing at the same moment.
The main reason why I think it's ray haffner is because he is the only person who calls Lisbon by her first name as THERESA and if you look at conversation between Patrick Jane and redjohn in season 6 first episode , it shows that redjohn also calls her by the same name..... you can change tone in a conversation but rarely you change how you address a person...