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

SignTool Error: No certificates were found that met all the given criteria.


재미있는 현상이 나왔군요. ^^

인증서를 "Local Machine" / "Personal"에 등록한 다음 signtool.exe로 서명하는데 정상적으로 실행되었습니다. 그런데, 로그인/로그아웃을 한 다음부터 다시 실행을 해 보니 다음과 같이 오류가 발생합니다.

D:\...>signtool sign /v /ph /sm /n "mytest" D:\...\bin\Release\ConsoleApplication1.exe

SignTool Error: No certificates were found that met all the given criteria.

분명히, 인증서는 다음과 같이 잘 등록되어 있습니다.

signtool_cert_not_found_1.png

재미있는 것은, 삭제한 다음 다시 pfx 파일로 동일하게 "Local Machine" / "Personal" 저장소에 등록해주면 서명이 또 제대로 되지만 로그인/로그아웃을 반복하면 역시나 다시 오류가 발생합니다.

이런 경우는, 대개 개인키에 대한 접근 권한과 관계있을 수 있다는 생각에 인증서 관리자에서 확인을 해보았습니다. 해당 인증서를 선택하고, "Manage Private Keys..." 메뉴를 선택하면,

signtool_cert_not_found_2.png

다음과 같이 개인키에 대한 접근 권한을 확인할 수 있습니다.

signtool_cert_not_found_3.png

오호... "S-1-5-5-0-64752180"은 어떤 계정일까요? PsGetSid로 확인해 보았더니 그런 거 없다고 나옵니다. ^^;

더 시간 끌거 없고, 그냥 해당 계정을 삭제하고 새로 현재 로그인한 사용자 계정을 등록해서 "Read" 권한만 주었습니다.

signtool_cert_not_found_4.png

물론, 이렇게 조정하고 나서는 다시 로그인을 해도 정상적으로 서명이 되었습니다. ^^




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







[최초 등록일: ]
[최종 수정일: 6/13/2021]

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

비밀번호

댓글 작성자
 



2015-03-05 01시18분
[조성우] 좋은 글 감사합니다. 저도 지금 이런 문제에 골치가 아픕니다. 그런데 현재 윈도우 2012 R2 서버에서는 "Manage Private Keys..." 라는 메뉴 자체가 없습니다. 다른 방법은 없는지 궁금합니다.
[guest]
2015-03-05 12시41분
@조성우 님, "Manage Prive Keys..." 메뉴는 2012에서 없어지지 않았습니다. 그 메뉴는 "Local SYSTEM" 계정 쪽으로 보시면 그 메뉴가 나옵니다. (아마도, 자신의 계정에서 대해서는 full 권한이 있으니 그런 메뉴가 제공되지 않는 건지도 모르겠습니다.)

자신의 계정에 대해 필요하다면, 아래의 글에 따라 개인키에 대한 물리 파일의 위치를 직접 찾아서 보안 설정을 해주는 방법도 있습니다.

인증서의 개인키를 담은 물리 파일 위치 알아내는 방법
; http://www.sysnet.pe.kr/2/0/865
정성태

... 61  62  63  64  65  66  67  68  69  70  [71]  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12162정성태2/26/202021878디버깅 기술: 166. C#에서 만든 COM 객체를 C/C++로 P/Invoke Interop 시 메모리 누수(Memory Leak) 발생 [6]파일 다운로드2
12161정성태2/26/202017930오류 유형: 597. manifest - The value "x64" of attribute "processorArchitecture" in element "assemblyIdentity" is invalid.
12160정성태2/26/202018272개발 환경 구성: 469. Reg-free COM 개체 사용을 위한 manifest 파일 생성 도구 - COMRegFreeManifest
12159정성태2/26/202015367오류 유형: 596. Visual Studio - The project needs to include ATL support
12158정성태2/25/202017956디버깅 기술: 165. C# - Marshal.GetIUnknownForObject/GetIDispatchForObject 사용 시 메모리 누수(Memory Leak) 발생파일 다운로드1
12157정성태2/25/202017986디버깅 기술: 164. C# - Marshal.GetNativeVariantForObject 사용 시 메모리 누수(Memory Leak) 발생 및 해결 방법파일 다운로드1
12156정성태2/25/202016563오류 유형: 595. LINK : warning LNK4098: defaultlib 'nafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
12155정성태2/25/202016015오류 유형: 594. Warning NU1701 - This package may not be fully compatible with your project
12154정성태2/25/202015397오류 유형: 593. warning LNK4070: /OUT:... directive in .EXP differs from output filename
12153정성태2/23/202019523.NET Framework: 898. Trampoline을 이용한 후킹의 한계파일 다운로드1
12152정성태2/23/202018576.NET Framework: 897. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Trampoline 후킹)파일 다운로드1
12151정성태2/22/202019380.NET Framework: 896. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 - 두 번째 이야기 (원본 함수 호출)파일 다운로드1
12150정성태2/21/202019630.NET Framework: 895. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 [1]파일 다운로드1
12149정성태2/20/202018422.NET Framework: 894. eBEST C# XingAPI 래퍼 - 연속 조회 처리 방법 [1]
12148정성태2/19/202020952디버깅 기술: 163. x64 환경에서 구현하는 다양한 Trampoline 기법 [1]
12147정성태2/19/202018628디버깅 기술: 162. x86/x64의 기계어 코드 최대 길이
12146정성태2/18/202019385.NET Framework: 893. eBEST C# XingAPI 래퍼 - 로그인 처리파일 다운로드1
12145정성태2/18/202019246.NET Framework: 892. eBEST C# XingAPI 래퍼 - Sqlite 지원 추가파일 다운로드1
12144정성태2/13/202019457.NET Framework: 891. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 두 번째 이야기파일 다운로드1
12143정성태2/13/202016002.NET Framework: 890. 상황별 GetFunctionPointer 반환값 정리 - x64파일 다운로드1
12142정성태2/12/202018388.NET Framework: 889. C# 코드로 접근하는 MethodDesc, MethodTable파일 다운로드1
12141정성태2/10/202017403.NET Framework: 888. C# - ASP.NET Core 웹 응용 프로그램의 출력 가로채기 [2]파일 다운로드1
12140정성태2/10/202017955.NET Framework: 887. C# - ASP.NET 웹 응용 프로그램의 출력 가로채기파일 다운로드1
12139정성태2/9/202019202.NET Framework: 886. C# - Console 응용 프로그램에서 UI 스레드 구현 방법
12138정성태2/9/202023235.NET Framework: 885. C# - 닷넷 응용 프로그램에서 SQLite 사용 [6]파일 다운로드1
12137정성태2/9/202016448오류 유형: 592. [AhnLab] 경고 - 디버거 실행을 탐지했습니다.
... 61  62  63  64  65  66  67  68  69  70  [71]  72  73  74  75  ...