All those place are right. It could be either one. Got a multi-meter??
Take off the small signal wire at the starter. Have someone turn the key to start. If you get battery voltage every single time at that wire your ignition switch is OK. Then you can blame the starter.
If you don't get battery voltage most times, only once in awhile you get battery voltage at that wire, then you can blame your switch.
If that little signal wire was loose, then just tighten it up by pinching it with pliers & put it back on. If you're really lucky that'll fix it.