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

비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  37  38  39  40  41  42  43  [44]  45  ...
NoWriterDateCnt.TitleFile(s)
12546정성태3/3/20218743개발 환경 구성: 545. github workflow/actions에서 빌드시 snk 파일 다루는 방법 - Encrypted secrets
12545정성태3/2/202111506.NET Framework: 1026. 닷넷 5에 추가된 POH (Pinned Object Heap) [10]
12544정성태2/26/202111709.NET Framework: 1025. C# - Control의 Invalidate, Update, Refresh 차이점 [2]
12543정성태2/26/202110048VS.NET IDE: 158. C# - 디자인 타임(design-time)과 런타임(runtime)의 코드 실행 구분
12542정성태2/20/202112385개발 환경 구성: 544. github repo의 Release 활성화 및 Actions를 이용한 자동화 방법 [1]
12541정성태2/18/20219617개발 환경 구성: 543. 애저듣보잡 - Github Workflow/Actions 소개
12540정성태2/17/20219928.NET Framework: 1024. C# - Win32 API에 대한 P/Invoke를 대신하는 Microsoft.Windows.CsWin32 패키지
12539정성태2/16/20219858Windows: 189. WM_TIMER의 동작 방식 개요파일 다운로드1
12538정성태2/15/202110267.NET Framework: 1023. C# - GC 힙이 아닌 Native 힙에 인스턴스 생성 - 0SuperComicLib.LowLevel 라이브러리 소개 [2]
12537정성태2/11/202111294.NET Framework: 1022. UI 요소의 접근은 반드시 그 UI를 만든 스레드에서! - 두 번째 이야기 [2]
12536정성태2/9/202110251개발 환경 구성: 542. BDP(Bandwidth-delay product)와 TCP Receive Window
12535정성태2/9/20219418개발 환경 구성: 541. Wireshark로 확인하는 LSO(Large Send Offload), RSC(Receive Segment Coalescing) 옵션
12534정성태2/8/20219905개발 환경 구성: 540. Wireshark + C/C++로 확인하는 TCP 연결에서의 closesocket 동작 [1]파일 다운로드1
12533정성태2/8/20219620개발 환경 구성: 539. Wireshark + C/C++로 확인하는 TCP 연결에서의 shutdown 동작파일 다운로드1
12532정성태2/6/202110123개발 환경 구성: 538. Wireshark + C#으로 확인하는 ReceiveBufferSize(SO_RCVBUF), SendBufferSize(SO_SNDBUF) [3]
12531정성태2/5/20219119개발 환경 구성: 537. Wireshark + C#으로 확인하는 PSH flag와 Nagle 알고리듬파일 다운로드1
12530정성태2/4/202113357개발 환경 구성: 536. Wireshark + C#으로 확인하는 TCP 통신의 Receive Window
12529정성태2/4/202110337개발 환경 구성: 535. Wireshark + C#으로 확인하는 TCP 통신의 MIN RTO [1]
12528정성태2/1/20219743개발 환경 구성: 534. Wireshark + C#으로 확인하는 TCP 통신의 MSS(Maximum Segment Size) - 윈도우 환경
12527정성태2/1/20219918개발 환경 구성: 533. Wireshark + C#으로 확인하는 TCP 통신의 MSS(Maximum Segment Size) - 리눅스 환경파일 다운로드1
12526정성태2/1/20217753개발 환경 구성: 532. Azure Devops의 파이프라인 빌드 시 snk 파일 다루는 방법 - Secure file
12525정성태2/1/20217464개발 환경 구성: 531. Azure Devops - 파이프라인 실행 시 빌드 이벤트를 생략하는 방법
12524정성태1/31/20218612개발 환경 구성: 530. 기존 github 프로젝트를 Azure Devops의 빌드 Pipeline에 연결하는 방법 [1]
12523정성태1/31/20218671개발 환경 구성: 529. 기존 github 프로젝트를 Azure Devops의 Board에 연결하는 방법
12522정성태1/31/202110217개발 환경 구성: 528. 오라클 클라우드의 리눅스 VM - 9000 MTU Jumbo Frame 테스트
12521정성태1/31/202110147개발 환경 구성: 527. 이더넷(Ethernet) 환경의 TCP 통신에서 MSS(Maximum Segment Size) 확인 [1]
... 31  32  33  34  35  36  37  38  39  40  41  42  43  [44]  45  ...