한글 전자서명 인증서 오류 해결법 총정리(HWP 디지털서명·공동인증서 인식 안됨 완벽 가이드)

이 글의 목적은 한글(Hancom HWP)에서 전자서명 또는 인증서 관련 오류가 발생할 때 원인을 신속히 진단하고 확실하게 복구하는 체계적 절차와 실무 체크리스트를 제공하는 것이다.

1. 증상 분류와 첫 판단

전자서명 기능 실행 시 다음과 같은 대표 증상이 발생한다.

  • “전자서명에 사용할 인증서를 찾을 수 없다” 메시지가 표시된다.
  • 인증서 선택 창이 비어 있거나 특정 인증서만 보이지 않는다.
  • 전자서명 시도 후 “유효하지 않은 인증서” 또는 “체인 검증 실패” 오류가 발생한다.
  • 서명이 완료되었으나 검증 시 “서명자 신원 확인 불가” 또는 “변조 가능성” 경고가 뜬다.
  • 토큰·스마트카드·보안USB 인식이 간헐적으로 끊긴다.
주의 : 증상만 보고 단정하지 말고, 저장위치·체인·시간·네트워크·모듈 충돌을 순서대로 점검해야 한다.

2. 원인 진단 로드맵(고속 체크)

  1. 인증서 저장 위치가 한글에서 인식 가능한 경로에 있는지 확인한다.
  2. 인증서 체인(루트·중간·개인키)이 온전하고 폐지·만료·용도 불일치가 없는지 확인한다.
  3. PC 시스템 시간과 표준 시간이 2~3분 이상 어긋나지 않았는지 확인한다.
  4. CRL/OCSP 서버 접속이 방화벽·프록시로 차단되지 않는지 테스트한다.
  5. 보안 모듈·가상 키보드·구 인증서 플러그인 간 충돌이 없는지 확인한다.
  6. 한컴오피스 및 OS 암호화 구성요소 업데이트 상태를 점검한다.

3. 즉시 점검 체크리스트

점검 항목확인 방법정상 기준
인증서 저장 위치 로컬·이동식 드라이브·Windows 인증서 스토어 확인 개인키(PVK)와 인증서(PFX/P12 또는 NPKI 구조)가 존재한다
인증서 유효기간·용도 세부정보에서 NotBefore/NotAfter, Key Usage 확인 현재일 유효, Digital Signature/Non Repudiation 포함
체인 검증 루트·중간 인증서 설치 및 신뢰 “이 인증서는 올바르게 설치됨”으로 표시
시간 동기화 Windows 시간 동기화 또는 NTP 점검 오차 ±2분 이내
CRL/OCSP 통신 방화벽·프록시 예외 등록 후 연결 테스트 HTTP/HTTPS 접근 가능, 응답 수신
보안 모듈 충돌 중복 구버전 모듈 제거 및 재부팅 필요 모듈 1종만 활성

4. 인증서 저장 위치·형식 정리

4.1 NPKI/공동인증서 디렉터리

  • 로컬 사용자: C:\Users\%USERNAME%\AppData\LocalLow\NPKI\
  • 루트 디렉터리: C:\NPKI\ (조직 정책에 따라 사용 가능)
  • 이동식 저장장치: USB\NPKI\ 구조 확인

디렉터리 내 signCert.der·signPri.key 또는 유사 명칭의 인증서·개인키 파일이 쌍으로 존재해야 한다.

주의 : 개인키 파일은 암호화되어 있으며 임의 편집·복사는 손상 위험이 크다. 백업은 원본 그대로 복제한다.

4.2 PKCS#12(PFX/P12) 형식

조직 서명서버나 기업 인증서 배포 시 PFX/P12로 제공되는 경우가 있다. 이 경우 Windows 개인 스토어(사용자)로 가져오기(import)하면 한글에서 인식되는 경우가 많다.

certmgr.msc # 인증서 관리자 # 또는 제어판 > 인터넷 옵션 > 콘텐츠 > 인증서 > 개인 탭 > 가져오기

4.3 하드 토큰·스마트카드

제조사 PKCS#11 미들웨어 또는 CSP/CNG 공급자 설치가 필요하다. 장치 관리자에서 토큰 인식 여부와 드라이버 서명 상태를 확인한다.

5. 한글(HWP) 측 설정·동작 점검

  1. 문서 저장 형식이 HWP/HWPX인지 확인한다. 일부 전자서명 기능은 형식에 따라 동작 방식이 다르다.
  2. 한컴오피스 최신 업데이트를 적용한다. 서명 검증 알고리즘(SHA-2, RSA 길이) 지원과 오류 수정이 포함된다.
  3. 전자서명 삽입 경로에서 인증서 선택 창이 지연되면 백그라운드에서 보안 모듈 초기화 중일 수 있다. 다중 모듈 설치를 줄인다.
  4. 서명 후 검증 기능으로 서명자, 타임스탬프, 변경 여부를 즉시 확인한다.
주의 : 전자서명은 인쇄본에 복사되지 않는다. 제출 형식 요구가 “전자서명 포함 전자문서”인지 “서명 이미지”인지 사전에 확인한다.

6. Windows 인증서 스토어 진단

6.1 GUI로 빠르게 보기

  • 사용자 스토어: 개인 탭에 대상 인증서가 존재해야 한다.
  • 신뢰할 수 있는 루트 인증기관중간 인증기관에 체인 구성 요소가 설치되어야 한다.

6.2 명령줄 검증

# 사용자 개인 스토어 나열 certutil -user -store My
특정 인증서 세부 검증(지문값으로 식별)
certutil -user -store My 

체인·CRL/OCSP 실시간 확인
certutil -verify -urlfetch "C:\path\to\cert.cer"

7. 인증서 체인·서명 알고리즘 확인

  • 루트·중간 인증서가 최신으로 갱신되었는지 확인한다.
  • 서명 알고리즘은 SHA-256 이상 사용을 권장한다.
  • Key Usage에 Digital Signature가 포함되어야 하며, 조직 정책에 따라 Non Repudiation(내용 증명)이 필요할 수 있다.

8. CRL/OCSP 네트워크 점검

서명 검증은 CRL/OCSP 서버에 접근해야 한다. 기업망에서는 방화벽·프록시 예외가 필수이다.

# 포트 연결 테스트 powershell -Command "Test-NetConnection example.ocsp.server -Port 80" powershell -Command "Test-NetConnection example.ocsp.server -Port 443"
CRL 파일 수동 가져오기
certutil -url "http://example.crl.server/path/crl.crl"
주의 : 내부망에서 외부 CRL/OCSP를 차단하면 서명 검증이 지연되거나 실패한다. 오프라인 검증 정책을 쓰지 않는 한 반드시 예외를 등록한다.

9. 시스템 시간·타임스탬프

시스템 시간이 2~3분만 어긋나도 서명·검증이 실패할 수 있다.

# 시간 동기화 w32tm /resync # NTP 서버 재설정 예 w32tm /config /manualpeerlist:"time.windows.com,0x9" /syncfromflags:manual /update

10. 보안 프로그램·모듈 충돌 제거

다음 상황에서 충돌이 잦다.

  • 구버전 키보드 보안·인증서 모듈이 여러 개 공존한다.
  • 브라우저용 인증서 플러그인을 OS 전역 모듈로 착각하고 중복 설치한다.
  • 토큰 미들웨어가 두 제조사 버전으로 이중 설치되어 있다.

조치 순서는 다음과 같다.

  1. 프로그램 추가/제거에서 인증서·보안 모듈을 정리한다.
  2. 재부팅 후 필요한 모듈만 최신 버전으로 재설치한다.
  3. 장치 관리자에서 알 수 없는 보안 장치에 느낌표가 없는지 확인한다.

11. 재설치·복구 표준 절차

  1. 백업: C:\NPKI\ 또는 사용자 AppData\LocalLow\NPKI 전체를 안전한 위치로 복사한다.
  2. 한컴오피스 복구: 프로그램 복구 또는 최신 패치 설치를 수행한다.
  3. 루트/중간 인증서 재설치: 기관 배포 패키지를 사용하거나 Windows 업데이트를 적용한다.
  4. 개인 인증서 재가져오기: PFX/P12는 개인 스토어로 가져오기한다.
  5. 테스트 서명: 샘플 문서에 시험 서명 후 검증 결과를 기록한다.

12. 기업 환경(AD·프록시·VDI)에서의 유의점

  • 그룹 정책: 암호 강도, 신뢰 루트 배포, CRL 검사 정책을 중앙에서 강제한다.
  • 프록시: 사용자·서비스 계정 모두 CRL/OCSP 접근 허용 규칙을 가진다.
  • 프로필 리다이렉션: NPKI 경로가 리다이렉트되면 오프라인 시 인식 실패가 난다.
  • VDI/원격: USB 리다이렉션 정책으로 토큰 인식이 차단될 수 있다.

13. 운영 규정 예시(권고)

항목권고 기준점검 주기
한컴오피스 패치 보안·기능 업데이트 최신 유지 월 1회
루트/중간 인증서 기관 배포 목록과 동일성 검증 분기 1회
CRL/OCSP 접근성 테스트 스크립트 자동화 주 1회
시간 동기화 NTP 이중화 및 지연 모니터링 상시
토큰/모듈 버전 중복 모듈 금지, 최신 유지 분기 1회

14. 오류 메시지별 원인·해결 매핑

오류 메시지(예시)주요 원인처리 절차
인증서를 찾을 수 없음 경로 불일치, 권한 부족, 이동식 매체 미인식 저장 경로 확인, 관리자 권한 실행, USB 다른 포트 사용
체인 검증 실패 중간/루트 인증서 미설치, 만료, 알고리즘 불일치 루트/중간 설치, 최신 업데이트, SHA-2 지원 확인
유효하지 않은 인증서 용도 불일치, 폐지, 시간 오차 Key Usage 확인, 폐지 조회, 시간 동기화
OCSP/CRL 조회 실패 방화벽·프록시 차단 예외 등록, 연결 테스트 및 로그 확인
토큰 초기화 실패 미들웨어 불일치, 드라이버 오류 제조사 모듈 재설치, 장치 관리자 점검

15. 현장 절차 예시 스크립트

15.1 점검 자동화 배치 파일(관리자 권한)

@echo off echo [1] 시간 동기화 w32tm /resync
echo [2] 사용자 개인 스토어 인증서 나열
certutil -user -store My

echo [3] CRL/OCSP 접근성 점검 예시(대상은 기관 주소로 교체)
powershell -Command "Test-NetConnection example.ocsp.server -Port 80"
powershell -Command "Test-NetConnection example.ocsp.server -Port 443"

echo [4] NPKI 기본 경로 존재 확인
if exist "C:\NPKI" (echo C:\NPKI OK) else (echo C:\NPKI 없음)
if exist "%USERPROFILE%\AppData\LocalLow\NPKI" (echo LocalLow\NPKI OK) else (echo LocalLow\NPKI 없음)

echo 완료
pause

15.2 PowerShell로 만료 임박 인증서 추출

$days = 30 Get-ChildItem Cert:\CurrentUser\My | Where-Object {($_.NotAfter - (Get-Date)).Days -lt $days} | Select-Object Subject, NotAfter, Thumbprint

16. 문서 제출 전 최종 검증 리스트

  • 서명자 정보가 조직 정책과 일치한다.
  • 검증 시 “이 문서는 변경되지 않았다”로 표시된다.
  • 타임스탬프가 존재하거나 제출 요구사항에 부합한다.
  • 서명 검증 과정에서 외부 네트워크 접근이 필요한 경우 제출 환경에서도 가능하다.
  • 문서 포맷(HWP/HWPX/PDF 변환본)이 접수 시스템과 호환된다.

17. 자주하는 실수와 예방 팁

  • 개인키를 잃어버리고 인증서 파일만 백업하는 실수: 개인키 없는 인증서는 사용할 수 없다.
  • 브라우저 플러그인 삭제로 OS 인증서가 지워진다고 오해: 스토어와 플러그인은 구분한다.
  • 프록시로 인터넷은 되나 OCSP는 실패: 도메인·경로 단위 예외가 필요하다.
  • 구버전 모듈 유지: 서명 속도 저하·충돌 원인이 된다.
주의 : 인증서·개인키는 개인정보이자 전자서명 법적 책임과 직결된다. 암호·백업·보관 절차를 표준작업지침으로 문서화한다.

FAQ

Q1. 인증서가 보이지만 서명 직후 “검증 실패”가 뜬다.

체인·CRL/OCSP·시간 동기화 문제 가능성이 높다. 루트/중간 인증서 설치 상태를 확인하고, 네트워크에서 CRL/OCSP 접근을 허용하며, w32tm /resync로 시간을 맞춘다.

Q2. PFX 파일로 받은 인증서를 한글에서 인식시키려면?

개인 스토어로 가져오기한 뒤 한글에서 전자서명을 재시도한다. 가져오기 시 “개인 키를 내보낼 수 있음” 옵션은 조직 정책에 따라 선택한다.

Q3. USB 토큰이 간헐적으로 끊긴다.

전원 관리에서 USB 선택적 절전을 해제하고, 제조사 미들웨어를 최신으로 재설치한다. VDI 환경에서는 USB 리다이렉션 허용 정책을 점검한다.

Q4. 오프라인 환경인데 검증이 느리다.

정책상 온라인 검증이 요구되면 지연이 발생한다. 오프라인 검증 허용 정책 또는 내부 CRL 미러링을 구성한다.

Q5. 서명 후 문서를 PDF로 제출하라는데 서명이 사라진다.

HWP 내부 서명은 HWP 뷰어에서 검증된다. 제출 요구가 “PDF의 디지털서명”이면 PDF에서 다시 서명해야 한다. 요구 형식을 담당 부서에 확인한다.