반응형
엑셀에서 VBA 코드가 인증서 서명 후에도 매크로 차단될 때 발생하는 원인과 해결 방법을 정리합니다. 이 문제는 서명이 제대로 되었음에도 여전히 보안 경고가 발생해 자동 실행이 되지 않을 때 흔히 나타납니다.
인증서를 서명했는데도 매크로가 차단되는 이유
엑셀에서 디지털 서명을 완료했음에도 VBA 코드가 차단되는 현상은 다음과 같은 원인으로 발생합니다:
- 신뢰할 수 없는 인증서 루트
자체 생성한 인증서(Self-Signed)는 기본적으로 신뢰되지 않으며, 이를 설치하지 않으면 엑셀이 해당 서명을 인정하지 않습니다. - 서명 후 파일 변경
디지털 서명 이후.xlsm
파일을 편집하거나 매크로를 수정하면 서명이 무효화되어 차단 대상이 됩니다. - 보안 센터 설정 미흡
"서명된 매크로만 실행" 또는 "모든 매크로 차단" 옵션이 활성화되어 있는 경우, 인증서가 유효해도 실행이 제한됩니다. - GPO(그룹 정책) 적용
회사나 조직의 정책에서 로컬 인증서 또는 매크로 실행을 제한한 경우도 있으며, 로컬 설정만으로는 우회가 불가능합니다.
인증서 신뢰 설정을 통한 문제 해결
엑셀에서 인증서가 신뢰되지 않는 상황을 방지하기 위해서는 인증서 설치 및 신뢰할 루트 인증 기관에 등록하는 것이 우선입니다.
1. 인증서 내보내기 및 설치
- 엑셀에서 서명한
.xlsm
파일을 열고, 파일 > 정보 > 디지털 서명 보기
에서 인증서 선택인증서 보기 > 인증서 복사 > 로컬 컴퓨터 저장소
- 위치: 신뢰할 루트 인증 기관에 추가
🔐 이 작업은 관리자 권한이 필요합니다.
2. 보안 센터에서 매크로 허용 설정
다음 경로에서 엑셀의 매크로 실행 정책을 확인합니다:
파일 > 옵션 > 보안 센터 > 보안 센터 설정
- 매크로 설정에서 아래 항목 선택:
- 서명된 매크로만 실행
- VBA 프로젝트 개체 모델에 안전한 액세스 허용
⚠️ "모든 매크로 차단"을 선택한 경우, 인증서 여부와 관계없이 차단됩니다.
실전 예: 자가 서명 인증서 만들기 및 매크로 서명
1. SelfCert.exe를 이용해 인증서 생성
"C:\Program Files (x86)\Microsoft Office\root\Office16\SelfCert.exe"
이 도구를 실행해 원하는 이름으로 인증서를 생성합니다.
2. 인증서로 VBA 매크로 서명하기
Sub 서명예시()
MsgBox "이 매크로는 서명되어 실행 중입니다."
End Sub
VBE(Alt + F11)
> 도구 > 디지털 서명- 앞서 만든 인증서 선택
서명 이후에는 코드를 절대 변경하면 안 됩니다. 수정 시 서명이 무효화됩니다.
코드 무결성 유지 팁
.bas
,.cls
파일로 외부 저장 후 수정하고, 다시 서명- 엑셀 파일이 아닌 템플릿 파일(.xltm) 형태로 배포
- 코드 수정이 잦은 경우에는 문서 보호 또는 실행 시점의 인증 체크 루틴 추가
Sub CheckSignature()
If Not ThisWorkbook.HasVBProject Then
MsgBox "매크로가 없습니다."
Exit Sub
End If
If Not ThisWorkbook.VBProject.Protection = vbext_pp_locked Then
MsgBox "보호되지 않은 매크로입니다. 수정 후 재서명 필요."
End If
End Sub
조직 환경에서의 차단 우회
회사에서 그룹 정책으로 매크로 실행을 제한한 경우는 아래와 같은 방법이 필요합니다:
- IT 관리자에게 인증서 등록 요청
- 서명된 매크로를 신뢰된 네트워크 경로(Trusted Location)에 저장
- 로컬 정책 또는 레지스트리 변경 (관리자 권한 필요)
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security]
"AccessVBOM"=dword:00000001
"VBAWarnings"=dword:00000002
정책 적용 후 엑셀을 다시 시작해야 적용됩니다.
요약 및 추가 팁
엑셀에서 VBA 코드가 인증서 서명 후에도 매크로 차단되는 문제는 신뢰 설정, 보안 정책, 서명 무효화 등 여러 요소가 복합적으로 작용합니다.
중요 요점 요약:
- 서명한 인증서를 반드시 루트 인증서 저장소에 등록
- 서명 이후 코드 수정은 금지
- 보안 센터 및 조직 정책(GPO) 설정 확인
- SelfCert.exe 도구로 테스트 인증서 생성 가능
- 신뢰된 위치(Trusted Location) 기능을 적극 활용
서명된 매크로라도 잘못된 환경에서는 차단될 수 있습니다. 배포 전 테스트 환경에서 항상 점검하세요.
반응형
'#2 엑셀 오류 가이드' 카테고리의 다른 글
엑셀 호환 모드 문제로 특정 기능이 작동하지 않을 때 해결법 (0) | 2025.05.05 |
---|---|
엑셀에서 Solver 애드인 로드 후 리본 메뉴가 표시 안 될 때 (2) | 2025.05.04 |
엑셀에서 VBA 프로젝트가 “잠겨 있음” 상태로 표시될 때 해제 방법 (0) | 2025.05.02 |
엑셀에서 자동 고침(AutoCorrect) 기능이 특정 시트에서만 작동 안 할 때 (0) | 2025.05.01 |
엑셀에서 최근 문서 목록이 사라졌을 때(점프 목록 문제) (0) | 2025.04.30 |