개인정보보호법의 안전성 확보 조치에 따라 국.공립 사립대학은 웹서비스에 SSL 인증서 도입이 의무화되어 있다. 우리학교에서도 이에 따라 행정전자서명인증센터로부터 발급받은 SSL 인증서를 웹서버에 적용하고 있는데, 최근 Node.js 기반으로 개발된 웹서비스에 적용이 필요해졌다. 일명 G-SSL이라고도 하는 행정안전부 보안서버인증서(GPKI)는 싱글 도메인, 와일드카드(*) 도메인, 멀티 도메인을 지원하며 Apache HTTPd용과 IIS용, Tomcat용 포맷을 별도로 지원하고 있다.

 여담으로 G-SSL 인증서는 최신 웹브라우저와 모바일용 브라우저를 지원하지 못하는 등 문제가 많아서 행정망 업무시스템으로 발급을 제한하였다. 2019년 6뤌 이후부터 대학은 발급대상에서 제외되었으며 기존 발급된 인증서의 유효기간 만료일까지만 사용이 가능하도록 해서 민간 SSL 인증서로 전환을 강제하고 있다.

 G-SSL 인증서는 2015년에 웹트러스트 국제인증을 획득하여, 최상위(Root) CA 역할을 하는 행정안전부 보안서버인증(GPKI)과 하위(sub) CA 기관인 교육부 보안서버인증(EPKI)을 통해 대학기관의 인증을 처리하는 구조이다. 그렇기 때문에 G-SSL 인증서의 경우 인증서 소유자(대학)로부터 트러스트의 체인이 시작되는 Root CA까지 인증 경로라고도 하는 인증서 체인을 위해 Root CA 행정안전부(GPKI) 인증서 및 교육부 CA (EPKI) 인증서를 모두 등록해야 한다.

 위의 2가지 인증서는 대학의 경우 교육부 행정전자서명인증센터 자료실을 통해 내려받으면 된다.

 Node.js는 http 대신 https 클래스를 이용하며, 실제 서비스에서는 비동기 구현이 필요하겠으나, 인증서 체인의 동작만 확인할 목적이므로 간단히 동기방식으로 코드를 작성했다.

+ Recent posts