본문 바로가기
WPF/자료

[ClickOnce] 인증서 생성 혹은 갱신

by 미네밍 2017. 8. 17.

[ClickOnce 인증서 갱신]


ClickOnce 로 인증서를 만들어서 배포중인데, 테스트 인증서는 1년밖에 기한이 되지않아서 업데이트를 확인해주지 못하는 문제점이 생겼다.


그럴 때 마다 새로 프로그램을 깔아야만 하는 번거로움을 없애기 위해서 인증서 만료 기간을 늘리는 방법에 대해 검색해 보았는데,

찾아보니까 RenewCert 에 관한 내용은 그리 많이 없는 것 같아서, 글을 올리면 누군가 볼 수도 있고, 나도 나중에 까먹지 않기 위해 올린다.


맨처음엔 makecert.exe 를 활용하여 인증서를 갱신해보려하였으나, 이건 기존 인증서를 갱신하는 게 아니고, 만료기간이 긴 인증서를 새로 생성하는 방법이었던 것 같다. 

그래도 이걸 필요로 하는 누군가가 있을 수도 있으니 내가 참고했던 사이트를 올려놓는게 좋은 것 같아서 올려놓는다.


만료기간이 긴 인증서 생성 MakeCert



cmd 창 키고 > makecert.exe 가 있는 경로로 간 후


이와같이 명령어를 쳐주면 된다.


makecert.exe -r -pe -n "CN=인증서명칭" -b 01/01/2007 -e 12/31/2020 -sky exchange -ss my


-b 뒤는 시작일

-e 뒤는 만료일을 의미한다. 하고싶은 대로 써주면 된다.


정확히 뭐가 어떤 것을 의미하는진 모르겠지만 아마 makecert.exe 의 뭐 ..명령어 일람 이런거 보면 의미는 나올 것 같다.

우선 되는 게 젤 중요하니까 일단


Succeed라는 문구가 떴으면,


certmgr.exe 를 실행했을 때 새로 만든 인증서가 생성되어있음을 볼 수 있다.

프로젝트를 배포할 때 저장소에서 선택을 누르면 해당 인증서가 뜰 것이다.


기존 인증서 만료기간 갱신 RenewCert



기존에 있던 만료된 인증서를 그대로 연장하는 방법을 알고 싶었다.

여기서 나는 프로젝트 파일을 다운로드 받았다. Solution 이라고 되어있는 문단에 


project as a zip file을 클릭하면 된다.

압축을 풀어준 다음 프로젝트를 개발환경에서 연다음 컴파일을 해서 실행을 시켜주니까 

프로젝트 파일안에 Debug 폴더가 생겨 그 안에 RenewCert.exe 실행파일이 만들어졌다.


cmd 창을 켜고 RenewCert.exe 파일이 있는 경로로 들어간 다음


renewcert 기존키이름.pfx 새로운키이름.pfx "CN=인증서명칭" 비밀번호


이렇게 명령어를 써주면 된다. 그리고 기존에 연장시키고 싶은 키 파일은 RenewCert.exe 파일과 같은 경로 안에 있어야 하는 것 같다.

이로서 똑같은 키로 서명된 다른 인증서?(이 개념이 맞는지 잘 모르겠다.) 어쨌든 새로운 파일이 생성되게 된다.


배포하려는 프로젝트에서 파일에서 선택을 누른 후 새로만들어진 파일을 가져오니까

다른 키로 서명되었다는 경고창이 뜨지 않았다!!!


그리고, 어떤 다른 글을 보니까

프로젝트의 RenewCert.cpp 파일 안에 있는


certExpireDate.wYear += 5;


라는 구문을 찾아 5를 더 늘려주면 그보다 더 길게 만료기간을 늘릴 수 있다고 한다.



댓글