2014-02-18 2 views
1

WCF 서비스를 사용하는 .NET 콘솔 응용 프로그램 프로젝트가 있습니다. 서비스를 사용하려면 응용 프로그램에서 여러 가지 디지털 인증서를 제공해야합니다.프로젝트에 인증서 포함

지금까지 로컬 컴퓨터에서이 응용 프로그램을 실행 중이므로 응용 프로그램이 로컬 파일 시스템에서 인증서를 가져올 수있었습니다. 그러나, 나는 현재 여러 다른 컴퓨터에 응용 프로그램을 배포하는 데 관심이 있어요.

이러한 인증서를 프로젝트에 포함시키는 올바른 방법은 무엇입니까? 특히, resource 개의 파일에 인증서를 저장하는 것이 합리적입니까?

답변

0

이것은 나를 위해 흥미 롭습니다; 나는 내 자신의 프로젝트에서 몇 달 동안 같은 문제를 다룰 것이다.

답변의 큰 부분은 인증서를 어떻게 관리 할 계획인지에 달려 있습니다. 정기적 인 키 순환주기의 일부로 업데이트해야합니까 (즉, 위험이 낮은 인트라넷 응용 프로그램 이외의 다른 항목의 경우)? 이미 디지털 인증서를 사용하고 있으므로 응용 프로그램이 가치가 높은 데이터를 처리하고 인트라넷에서 실행되지 않거나 서비스가 인트라넷 외부에있는 것입니다 (그렇지 않으면 서비스와 함께 Windows 통합 인증을 사용해야합니다 계정) - 인증서를 정기적으로 (일년에 한 번) 업데이트해야하는 것처럼 들리 네요.

그래서 중요한 질문은 인증서를 업데이트해야 할 경우 응용 프로그램을 재배포하여 수행 할 것인지 여부입니다.

확실히 인증서를 리소스 파일에 포함 할 수 있습니다. WiX으로 빌드 한 MSI 패키지로 묶을 수도 있습니다 (내가 본 멋진 OSS 프로젝트 중 하나에 외쳐).). 그러나 앱 배포 일정 외의 인증서를 업데이트하려는 경우 해당 방법 중 어느 것도 의미가 없습니다.

그런 경우 인증서를 업데이트하기 위해 존재하는 별도의 스크립트/미니 설치 프로그램/서비스에 대해 생각하는 것이 좋습니다. PowerShell은 이러한 요구를 해결할 수있는 가장 간단한 방법 일 수 있습니다. 특히 응용 프로그램이 인트라넷에서만 실행되는 경우 (원격 컴퓨터에서 PowerShell 스크립트를 정기적으로 실행하도록 자동화 할 수있는 많은 도구가 있습니다).

그래, 전반적으로 나는 인증서 배포를 위해 PowerShell 스크립트를 사용한다고 말할 수 있습니다. 그런 다음 인증서의 변경 사항을 처리 할 수 ​​있도록 앱을 코딩하면됩니다 (예 : 인증서 저장소에서 인증서를 조회하는 것과 같이 엄지 손가락에 의존 할 수 있다고 생각하지 않음). 파일에서 인증서를로드하는 경우에도 문제가되지 않습니다.