본래 한홀(漢忽)이었는데 뒤에 한성(또는 息城)으로 고쳤다. 신라 경덕왕 때중반군(重盤郡)으로, 고려 태조 때안주(安州)로 고치고 고종 때재령으로 고쳤다. 고구려 때 평양성ㆍ국내성(國內城)과 더불어 3경(京)의 하나로 중요시되던 곳이었다.
이곳은 넓은 재령평야가 있어 많은 인구를 부양할 수 있었으며, 남으로 멸악산맥과 접하고 있어 고구려 초기에는 백제와 국경을 접하는 곳이었다. 고구려는 수도를 평양으로 옮긴 뒤 원래의 수도였던 국내성과 남쪽의 한성을 2경으로 삼아서 평양과 더불어 정치적ㆍ군사적 요지로서 3경제를 실시하였다.
지형상으로 재령강에 연하여 발달한 도로를 따라 북으로 오르면 바로 평양성에 이르게 된다. 통일신라 때에는 이 지역이 대동강을 경계로 하는 북방의 국경지대로 군사적인 요새였다.
경덕왕 때에는 오곡(五谷 : 지금의 서흥)ㆍ서암(栖巖 : 지금의 봉산)ㆍ한성ㆍ장색(獐塞 : 지금의 수안)ㆍ지성(池城 : 지금의 해주)ㆍ덕곡(德谷 : 지금의 곡산)의 6개 성을 쌓아 이곳에 태수(太守)를 두었다고 한다. 고려 때는 거란병이 여러 번 침입하였고, 몽고병이 이곳을 거쳐 남쪽으로 쳐내려왔다.
한성 남쪽의 장수산성(長壽山城)과 철현산성(鐵峴山城)에는 조선 말기까지 진(鎭)이 설치되어 군사가 주둔하였다. 한성은 대성(大城) 또는 왕성(王城)이라는 뜻을 지니고 있다.