Microsoft MVP성태의 닷넷 이야기
C# CodeSign에 대해 여쭤볼 것이 있습니다 [링크 복사], [링크+제목 복사],
조회: 9656
글쓴 사람
김혜원 (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)
943김기룡1/3/201117378닷넷 에러시 조치사항관련... [2]
942김기룡12/27/201012378Thread 안정성 관련 문의 드립니다. [2]
941최광욱12/20/201012054정성태님 올리신 글중에 [1]
940최광욱12/20/201013647Assembly Unloading 관련해서 [2]
939최광욱12/20/201012701IIS 로그 읽기 [1]
938날쌘돌이12/14/201012891자바로 asp.net 인증하기 [3]
935김기룡12/13/201023073c#에서 c++로 개발된 dll에 byte[] 전달 관련하여 문의 드립니다. [6]
934임동찬12/7/201011271System.Reflection.Assembly.GetTypes() 메서드에 대해 [1]
929김준호12/2/201011495안녕하세요 비주얼베이직 2005 닷넷 관련 문의입니다 [1]
928김준호11/30/201012147안녕하세요 비주얼베이직 2005 닷넷 관련 문의입니다 [1]파일 다운로드1
927임동찬11/30/201013257Windows\\Temp 폴더의 이름모를 .tmp 파일들에 대해서 [1]
926이승규11/26/201032938IP접속 시도시 ORA-12504 에러 [1]
925임동찬11/11/201011118다른 프로그램의 컨트롤 건드려보기_추가질문(2) [1]
924임동찬11/10/201012024다른 프로그램의 컨트롤 건드려보기_추가질문 [1]
923임동찬11/9/201014452다른 프로그램의 컨트롤 건드려보기 [1]
922박태근11/2/201013007html5의 shape파일 관련 [1]파일 다운로드1
921박태근11/1/201013723DataTable 의 Binary변환! [1]
920김재영10/26/201013794GAC에 등록된 어셈블리를 Visual Studio에서 참조 대화상자에 보이게 할려면 어떤 방법이 있습니까? [2]
919임동찬10/22/201012558IStream [1]
918임동찬10/21/201011893System.Runtime.InteropServices.ComTypes.IStream 관련 [1]
917한귀순10/20/201015892IIS 최초 loading 시 속도 [2]
916임동찬10/15/201012270file lock 관련 [2]
915오병태10/11/201010990바쁘신대 답변 감사드립니다. [1]
914오병태10/11/201011043감사드립니다. 염치없지만 또 한번 문의드립니다. [2]
912오병태10/11/201011279윈도우즈 인증서 관련해서 문의를 드립니다.
913정성태10/11/201014289    답변글 [답변]: 윈도우즈 인증서 관련해서 문의를 드립니다.
... 61  62  63  64  [65]  66  67  68  69  70  71  72  73  74  75  ...