Herrera has been representing the Chilean national team since he was a youth player, participating in its U-20 and U-23 levels, this last as one of the 23 players nominated to the 2000 Summer Olympics in Sydney.
His first call-up to the adult team was in 2002 in a game against Mexico, but however his last was in 2005.
Years later, during the best moment of his career between 2011 and 2012 playing for Universidad de Chile, Herrera curiously didn't receive nominations from Claudio Borghi, the incumbent coach.
The press usually alluded to an internal dispute between them, but with Borghi's departure in December 2012, the situation changed in Herrera's favor.

After almost 7 years absence, Herrera was reconsidered by Jorge Sampaoli, who finally took the helm.
He received his first call up from Sampaoli for the friendly matches against Haiti and Senegal in January 2013, where he stated that Herrera would play against Haiti, rotating the goal-keeping duties with Christopher Toselli.
Nevertheless, he played both games which were 2–1 and 3–0 wins respectively.

On 5 March 2014, Herrera earned his eighth cap against Germany in Stuttgart after replacing first-choice Claudio Bravo due to injury.
However, he gave a fine performance during the game played at Mercedes-Benz Arena which Chile lost 1–0 on a Mario Götze goal.

Having been part of the entire qualification campaign since Sampaoli‘s taking, Herrera was named in Chile's list of 23 for the FIFA World Cup in Brazil.
On 5 June, he played in a 2–0 friendly win over Northern Ireland, prior to the World Cup.

He was part of the 2015 Copa América champion team as back-up keeper to Claudio Bravo as well as in the 2016 Centenario edition.

In 2017, he was nominated to the Confederations Cup and played two matches against Cameroon (a 2–0 victory) and Australia (a 1–1 draw).
That cup, Chile was runner-up after being defeated 1–0 by Germany in the final.
Herrera has been representing the Chilean national team since he was a youth player, participating in its U-20 and U-23 levels, this last as one of the 23 players nominated to the 2000 Summer Olympics in Sydney. His first call-up to the adult team was in 2002 in a game against Mexico, but however his last was in 2005. Years later, during the best moment of his career between 2011 and 2012 playing for Universidad de Chile, Herrera curiously didn't receive nominations from Claudio Borghi, the incumbent coach. The press usually alluded to an internal dispute between them, but with Borghi's departure in December 2012, the situation changed in Herrera's favor.
After almost 7 years absence, Herrera was reconsidered by Jorge Sampaoli, who finally took the helm. He received his first call up from Sampaoli for the friendly matches against Haiti and Senegal in January 2013, where he stated that Herrera would play against Haiti, rotating the goal-keeping duties with Christopher Toselli. Nevertheless, he played both games which were 2–1 and 3–0 wins respectively.
On 5 March 2014, Herrera earned his eighth cap against Germany in Stuttgart after replacing first-choice Claudio Bravo due to injury. However, he gave a fine performance during the game played at Mercedes-Benz Arena which Chile lost 1–0 on a Mario Götze goal.
Having been part of the entire qualification campaign since Sampaoli‘s taking, Herrera was named in Chile's list of 23 for the FIFA World Cup in Brazil. On 5 June, he played in a 2–0 friendly win over Northern Ireland, prior to the World Cup.
He was part of the 2015 Copa América champion team as back-up keeper to Claudio Bravo as well as in the 2016 Centenario edition.
In 2017, he was nominated to the Confederations Cup and played two matches against Cameroon (a 2–0 victory) and Australia (a 1–1 draw). That cup, Chile was runner-up after being defeated 1–0 by Germany in the final.
Johnny Herrera (footballer)