The 32-year-old former England right-back joined the Potters from Liverpool in 2015 and has made 50 appearances in all competitions.
Johnson, whose existing contract was due to expire this summer, said the new deal was a "no-brainer".
"I've really enjoyed my time as a Stoke City player so far," he added.
"People made me feel really welcome from the moment I walked through the door two years ago and it's a good place to be.
"I still feel as though I've got plenty to offer as a player and want to continue to help Stoke City move forward," he added.
Manager Mark Hughes said that it would be "foolish" to let a player of Johnson's ability leave.
"He's 32 and remains a key figure in my plans and needless to say, I'm delighted he has signed a contract extension," added the 53-year-old.
Stoke City defender Glen Johnson has signed a one-year contract extension that will keep him at the club until the summer of 2018.