반응형
엑셀에서 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 |