Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 


파일 암호화 오류 - Recovery policy configured for this system contains invalid recovery certificate


어느 순간부터, 탐색기에서 제공되는 파일 암호화(EFS: Encrypting File System)를 할 때 다음과 같은 오류가 발생하엿습니다.

[그림 1: 파일 암호화 오류]
recovery_policy_configure_error_1.png
recovery_policy_configure_error_8.png

"
An error occurred applying attributes to the file:

...[폴더 경로]...

Recovery policy configured for this system contains invalid recovery certificate.

파일에 특성을 적용하는 중 오류가 발생했습니다.

...[폴더 경로]...

이 시스템에 대해 구성된 복구 정책에 올바르지 않은 복구 인증서가 포함되어 있습니다.
"



이상하지요... EFS에 사용되는 인증서는 self-signed 유형으로 이미 생성해 놓았고, 해보신 분들은 아시겠지만 비스타가 만들어주는 인증서는 그 만료기간이 무척 길게(100년) 만들어지니 웬만해선 별다른 문제가 있을 수도 없습니다.

할 수 없이, 또 구글링을 하기 시작했고, 도움이 될 만한 토픽을 2가지 정도 발견했습니다.

How do I get EFS working on a domain joined computer?
; http://social.technet.microsoft.com/Forums/en-US/winserverfiles/thread/5c0bf259-a1eb-4cae-b812-b43584007337/

Error message when client computers encrypt a file in a Windows Server 2003 domain: “Recovery policy configured for this system contains invalid recovery certificate” 
; http://support.microsoft.com/?kbid=937536

도메인 이야기가 나오길래 떠오르는 것이 있었는데, 최근 무선랜 관련해서 회사에 문제가 있어 모든 컴퓨터를 도메인에 가입한 적이 있었다는 점. 우선, 제 계정에 연결된 EFS 인증서는 문제가 없었기 때문에 도메인 컨트롤러 측의 그룹 정책 편집기를 확인해 보았습니다. 역시나,,, 기본 제공되어 있던 "Administrator" 인증서가 이미 만료된 것이었습니다.

그래서, 위의 2번째 링크에 제공된 KB937536에 제시된 방법을 이용해서 다음과 같이 새로운 인증서를 생성했습니다.

C:\Temp\csp>cipher /r:themyth_file_enc_v2
Please type in the password to protect your .PFX file:
Please retype the password to confirm:


Your .CER file was created successfully.
Your .PFX file was created successfully.

C:\Temp\csp>dir
 Volume in drive C has no label.
 Volume Serial Number is C6E7-7F99

 Directory of C:\Temp\csp

2008-12-23  오전 09:21    <DIR>          .
2008-12-23  오전 09:21    <DIR>          ..
2008-12-23  오전 09:21               844 themyth_file_enc_v2.CER
2008-12-23  오전 09:21             2,630 themyth_file_enc_v2.PFX
               2 File(s)          3,474 bytes
               2 Dir(s)   8,988,729,344 bytes free

C:\Temp\csp>

이렇게 생성된 새로운 인증서를 "[그림 2]"에서 보는 것처럼 "Default Domain Policy GPO" 의 "Computer Configuration" / "Windows Settings" / "Security Settings" / "Public Key Policies" / "Encrypting File System" 안에서 "Add Recovery Agent Wizard"를 이용해서 연결했습니다. (한글 윈도우즈의 경우: "컴퓨터 구성" / "Windows 설정" / "보안 설정" / "공개 키 정책" / "암호화 파일 시스템")

[그림 2: "Add Recovery Agent Wizard" 경로]
recovery_policy_configure_error_2.png
(위의 이미지는, 보안상 도메인 컨트롤러의 GPO 화면이 아닌, 제 컴퓨터의 GPO 화면을 올렸습니다. 하지만 구성 경로는 동일합니다.)

그리고, "gpupdate /force"를 실행하고, 제 로컬 컴퓨터를 다시 재부팅했습니다.

그걸로 문제 해결 끝!



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 4/10/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13332정성태4/27/20233872Windows: 248. Win32 C/C++ - 대화창을 위한 메시지 루프 사용자 정의파일 다운로드1
13331정성태4/27/20233922오류 유형: 856. dockerfile - 구 버전의 .NET Core 이미지 사용 시 apt update 오류
13330정성태4/26/20233572Windows: 247. Win32 C/C++ - CS_GLOBALCLASS 설명
13329정성태4/24/20233762Windows: 246. Win32 C/C++ - 직접 띄운 대화창 템플릿을 위한 Modal 메시지 루프 생성파일 다운로드1
13328정성태4/19/20233424VS.NET IDE: 184. Visual Studio - Fine Code Coverage에서 동작하지 않는 Fake/Shim 테스트
13327정성태4/19/20233840VS.NET IDE: 183. C# - .NET Core/5+ 환경에서 Fakes를 이용한 단위 테스트 방법
13326정성태4/18/20235271.NET Framework: 2109. C# - 닷넷 응용 프로그램에서 SQLite 사용 (System.Data.SQLite) [1]파일 다운로드1
13325정성태4/18/20234579스크립트: 48. 파이썬 - PostgreSQL의 with 문을 사용한 경우 연결 개체 누수
13324정성태4/17/20234387.NET Framework: 2108. C# - Octave의 "save -binary ..."로 생성한 바이너리 파일 분석파일 다운로드1
13323정성태4/16/20234300개발 환경 구성: 677. Octave에서 Excel read/write를 위한 io 패키지 설치
13322정성태4/15/20235106VS.NET IDE: 182. Visual Studio - 32비트로만 빌드된 ActiveX와 작업해야 한다면?
13321정성태4/14/20233933개발 환경 구성: 676. WSL/Linux Octave - Python 스크립트 연동
13320정성태4/13/20233894개발 환경 구성: 675. Windows Octave 8.1.0 - Python 스크립트 연동
13319정성태4/12/20234349개발 환경 구성: 674. WSL 2 환경에서 GNU Octave 설치
13318정성태4/11/20234191개발 환경 구성: 673. JetBrains IDE에서 "Squash Commits..." 메뉴가 비활성화된 경우
13317정성태4/11/20234265오류 유형: 855. WSL 2 Ubuntu 20.04 - error: cannot communicate with server: Post http://localhost/v2/snaps/...
13316정성태4/10/20233574오류 유형: 854. docker-compose 시 "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)" 오류 발생
13315정성태4/10/20233788Windows: 245. Win32 - 시간 만료를 갖는 컨텍스트 메뉴와 윈도우 메시지의 영역별 정의파일 다운로드1
13314정성태4/9/20233884개발 환경 구성: 672. DosBox를 이용한 Turbo C, Windows 3.1 설치
13313정성태4/9/20233959개발 환경 구성: 671. Hyper-V VM에 Turbo C 2.0 설치 [2]
13312정성태4/8/20233973Windows: 244. Win32 - 시간 만료를 갖는 MessageBox 대화창 구현 (개선된 버전)파일 다운로드1
13311정성태4/7/20234474C/C++: 163. Visual Studio 2022 - DirectShow 예제 컴파일(WAV Dest)
13310정성태4/6/20234086C/C++: 162. Visual Studio - /NODEFAULTLIB 옵션 설정 후 수동으로 추가해야 할 library
13309정성태4/5/20234243.NET Framework: 2107. .NET 6+ FileStream의 구조 변화
13308정성태4/4/20234150스크립트: 47. 파이썬의 time.time() 실숫값을 GoLang / C#에서 사용하는 방법
13307정성태4/4/20233905.NET Framework: 2106. C# - .NET Core/5+ 환경의 Windows Forms 응용 프로그램에서 HINSTANCE 구하는 방법
1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...