Microsoft MVP성태의 닷넷 이야기
C# CodeSign에 대해 여쭤볼 것이 있습니다 [링크 복사], [링크+제목 복사],
조회: 9655
글쓴 사람
김혜원 (kimhw0001 at naver.com)
홈페이지
첨부 파일
 

안녕하세요, 항상 홈페이지와 책에서 많은 지식을 도움받고 있으며 정말 감사합니다.

다름이 아니라 충분히 자료를 많이 찾아보려고 노력했지만 검색 기술이 부족한 것인지..
지금 며칠째 풀리지 않는 일이 있어 도움을 청하고자 글을 남깁니다.

글로 작성하는거라 읽기 어려울 수도 있겠지만.. 최대한 잘 정리해서 질문드립니다.

[현재 정보]
- Thawte인증기관의 Codesign을 사용하고 있습니다. (signtool 사용)
- 프로젝트는 C# .NET Framework가 기반이며 한 솔루션이 4개의 프로젝트로 이루어져있습니다.
- 그 중 3개는 일반 exe파일을 생성하는 프로젝트이며 제일 마지막 프로젝트는 msi파일을 만드는 package 프로젝트입니다.
- package 프로젝트는 위의 3개의 exe파일과 몇가지 dll, xml 등의 파일로 msi를 구성합니다.
- 명령프롬프트 창에서 수동으로 exe 파일에는 서명이 잘 들어가는 걸 확인했습니다.
- 명령프롬프트 창에서 수동으로 msi 파일에서는 서명이 되지 않으며 제가 사용한 코드와 에러코드는 아래와 같습니다.
- Thawte기관에서는 msi파일에 서명할 수 있다고 합니다.
- Thawte기관의 codesign을 구매대행해준 업체에 메일을 보냈으나, 기술팀이 검토하고 있다고 하며, 아직 연락을 받지 못했습니다.


사용 코드 : signtool.exe sign /f (pfx경로) /p (패스워드) /as /fd sha256 /tr (타임스템프 경로) /v (msi의 경로)
에러 코드 : SignTool Error: Multiple signature support is not implemented for this filetype.
SignTool Error: An error occurred while attempting to sign: (msi 경로)


[시도 정보]
1. 해결을 위해 첫번째로 제가 위해 사용한 방법은 Visual Studio 내에서 빌드 이벤트로 Codesign을 넣었습니다.
- 빌드 후 이벤트에 서 진행하였으며 역시나 exe파일에는 서명이 들어가고 msi프로젝트는 빌드 실패합니다.

2. msi에 서명을 하지 못하더라도 내부의 exe파일만 제대로 해보자 해서 exe파일들은 서명한 채 msi로 묶었습니다.
- setup.msi을 실행하면 exe의 서명들이 다 사라집니다.
- 혹시 이와같은 현상의 이유를 알 수 있을까요..?

3. 다른 사람들의 글을 인용하여 명령어를 바꿔보았습니다.
- 결과는 1번과 같았습니다.


사실 인증을 지원을 안해주는게 아닌가..? 라고 생각하고 싶지만
다들 잘 하는 것 같으니 그건 아니겠지요...ㅎㅎ


=======================================================================

[질문]

1. 시도 정보의 2번처럼 왜 exe서명들이 msi로 묶은 후 설치했을 때 사라지는지 알 수 있을까요?
2. 혹시 msi파일에 CodeSign을 적용해 본 사례가 있다면 무엇이 문제인지 힌트를 주실 수 있나요?




결국 어쩌다보니 해결해달라!! 이렇게 보일수도 있지만..ㅠㅠ 그게 아니라는 점만 알아주셨으면 좋겠습니다.
아직 구글 검색이 서툴러서 그런 것도 이해해주시고 감안해주시면 정말 감사할 것 같습니다.

해결방안에 대한 힌트를 조금이라도 얻을 수 있다면 그것만으로도 감사할 것 같습니다.
긴 글 읽어주셔서 감사합니다 ㅜㅜ

=======================================================================

참고한 대표적인 페이지들인데 혹시나 해서 링크 남겨드립니다.

* https://social.msdn.microsoft.com/Forums/windows/en-US/b33fc15d-d125-44b1-846a-7f461f3b1504/sign-assembly-with-pfx-certificate?forum=winformssetup
* http://www.ssesetup.com/articles/codesigning-sha256.html
* https://www.exemsi.com/documentation/sign-your-msi/
* https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool












[최초 등록일: ]
[최종 수정일: 11/18/2019]


비밀번호

댓글 작성자
 



2019-11-18 06시57분
그럼, 그냥 기본 코드의 ConsoleApp 프로젝트와 설치 프로젝트만 포함시키고 test 인증서로 코드 서명한 작업까지 한 최소한의 프로젝트를 올려 주세요.
정성태
2019-11-18 07시54분
참고로, "SignTool Error: Multiple signature support is not implemented for this filetype." 오류의 원인은 signtool에 "/as" 옵션을 주었기 때문입니다. 이것은 다중 서명을 할 때 사용하는 것으로 최초 서명 시에 옵션을 주면 그런 오류가 발생합니다. 자세한 내용은 다음의 글을 참고하세요.

signtool.exe의 다중 서명 기능
; http://www.sysnet.pe.kr/2/0/10875
정성태
2019-11-18 09시34분
다음의 글을 참고하세요.

"Microsoft Visual Studio Installer Projects" 프로젝트로 EXE 서명 및 MSI 파일 서명 방법
; http://www.sysnet.pe.kr/2/0/12056

정성태
2019-11-19 10시13분
[김혜원] 우와..ㅠㅠ... 당연히 저녁에는 댓글을 안 다실줄 알고 혼자 끙끙거리고 있었는데..
오늘 아침에 확인하고 시도해봤습니다!!
달아주신 두 링크가 큰 도움이 되었어요..!!
진짜 너무너무 감사합니다ㅜㅜ 제가 글을 두서 없이 막 적은 것 같은데 문제점을 너무 잘 파악하주셨어요ㅜㅜ
덕분에 이렇게 또 하나씩 알아가네요! 더 열심히 공부해야겠습니다 ㅎㅎㅎ
정말 감사합니다!!


[guest]

... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...
NoWriterDateCnt.TitleFile(s)
642조성택5/10/20079956스레드와 WinINet? [1]
641한귀순5/8/20078935Code Obfuscate 에 관한 질문. ^^ [2]
640박희진5/7/20078531스마트 클라이언트에서 ActiveX 브라우저 컨트롤을 사용한 경우 javascript 문제 [1]
639김재영5/3/200715597webBrowser클래스에서 띄워지는 Javascript 오류 다이얼로그를 감지할 수 있습니까? [2]
638최민규4/29/20079394SmartPhone / PDA 등에서의 .NET Smartclient [1]
636라이프가드4/27/200710049Insert 오류입니다. CLOB ........ [1]
635박희진4/27/200710530스마트클라이언트 위로 DIV가 못올라오고 스마트 클라이언트 뒤로 숨는 현상 [1]
632해운대끓...4/23/20078995이전에 소개 되었던 확장 매서드 아티클을 읽고 생각나는 의문 [1]
620이방은4/18/200710990질문있어요.. [2]
6196/17/200710270Child Form 에서 Mdi Form 의 메소드 Access 방법 [1]
616김우정4/15/200712780CAS 보안설정을 위한 ActiveX 관련 질문입니다 [2]파일 다운로드1
614박성희4/13/20079599IE Embedded된 스마트클라이언트로 로그인 정보를 보내려면 어떻게 해야 되나요? [2]
612김성헌4/11/200712227Vista, ShellExecute(,"runas",) 문제 [1]
611탑~4/10/20079267페이지 치고 들어가는거 막기... [2]
606한귀순4/3/20079523combobox usercontrol [2]
604채영사랑3/29/20079868<질문> System.Runtime.InteropServices.COMException: 개체가 필요합니다. [2]
603근바이3/28/20079304솔루션 -> 구성관리자 [1]
602김성헌3/27/20079546ActiveX 브로커 모듈과 통신방법은 RPC ??
607정성태4/4/200711270    답변글 [답변]: ActiveX 브로커 모듈과 통신방법은 RPC ??
601엔틱스3/22/20079294자동 로그인의 궁금증 [1]
600창민이3/16/200712151ATL 동적조회 관하여... [2]파일 다운로드1
597ygso...3/14/20078919단순 무식한 궁금증.. [1]
596조빵3/14/20079153SmartClient로 사용자PC의 엑셀을 실행시킬수는 없나요? [1]
594ygso...3/13/20079522ClickOnce를 이용하여 SmartClient를 배포할경우.. [2]
589김희택3/2/20078750리소스 추가 방법에 대한 아티클을 보던중에 질문요... [1]파일 다운로드1
588이성진2/24/200710853웹 -> 스마트클라이언트 -> 웹서비스 의 세션 공유 방법 ? [1]
... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...