Haley replaces Bruce Arians, who was not offered a new contract and is now with the Indianapolis Colts.
"I am excited about the opportunity to come back home and work for a tremendous organization," Haley said in a statement released by the team.
Haley's father, Dick, was the Steelers' director of player personnel from 1971-90.
"It is an honor to work with the Rooney family and Coach (Mike) Tomlin and continue the success that has become synonymous with the Steelers," Haley said in the statement. "My father has so many fond memories both from his playing days and his time in the personnel department with the team, and I look forward to helping bring more championships to Pittsburgh and to being a part of one of the storied franchises in the NFL."
The 45-year-old Haley, fired by Kansas City on Dec. 13, went 19-26 in two-plus seasons with the Chiefs, leading them to the 2010 AFC West title.
He spent 10 seasons as an assistant before being hired by Kansas City. He was offensive coordinator for Arizona in 2007-08, helping lead the Cardinals to their only Super Bowl appearance.
The Steelers went 12-4 this season but lost the AFC North title to Baltimore on a tiebreaker.
Information from The Associated Press contributed to this report.