2010-04-01 3 views
1

ASP.NET 개발 서버에 구축 된 Visual Studio를 사용하여 로컬 컴퓨터에서 WCF 서비스를 개발 중이며 임시 인증서를 만들고 사용하는 데 문제가 있습니다.WCF 인증서 문제

인증서 호출 TempCA를 만들고이를 신뢰할 수있는 루트 인증서 폴더에 추가했으며 개인 폴더에 추가 된 SignedByCA라는 다른 파일을 만들었습니다.

서비스 구성 파일이 SignedByCA를 사용하도록 설정되었지만 서비스를 실행할 때 다음 오류가 발생합니다.

인증서 'CN = SignedByCA'에는 키 교환이 가능한 개인 키가 있어야합니다. 프로세스에 개인 키에 대한 액세스 권한이 있어야합니다.

다른 사용자가 키에 액세스 할 수있게하기 위해 WinHttpCertCfg.exe를 사용해 보았지만 Windows Vista에서 WinHttpCertCfg.exe가 더 이상 사용되지 않는다고 알게되었습니다.

비슷한 상황에 이전에이 문제가 있었던 사람이 있습니까 ??

답변

0

certmgr을 사용해보세요. 하지만 makecert를 사용하여 인증서를 생성했다고 가정하면 WinHttpCertCfg를 사용하여 인증서를 설치할 필요가 없습니다. 자동으로 설치해야합니다. 당신은 IIS에서 서비스를 호스팅하는 경우

또한, 개인 키는 일반적으로 당신은 부여 시도 할 수

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 

에서 생성 된 읽기 전용의 사용자 "네트워크 서비스"에 대한 MachineKeys의 보안 (사용자 IIS6).

+0

IIS가 내 서비스를 실행하기 전에 IIS를 사용하지 않고 말했던 것처럼 죄송합니다. 디버그를 클릭 할 때 실행되는 Visual Studio 개발 서버를 사용하여 실행하고 있습니다. – Morgeh

+0

나는 설정하는 대신 비슷하다고 생각합니다. 그것은 "네트워크 서비스"사용자에게 "모든 사람"에게 읽기 전용을 임시로 허용하고 디버그를 실행할 수 있는지 확인하십시오. 프로덕션 환경에서 보안상의 이유로이 작업을 수행하고 싶지는 않을 것입니다. – K2so

+0

내 시스템을 다시 설정 한 후에도 웹 서비스에서 더 이상 certs를 찾을 수 없다는 점을 감안할 때 이것으로 원을 돌고있는 것처럼 보입니다. 나는 끊임없이 다음과 같은 검색 기준을 사용하여 X.509 인증서를 찾을 수 없습니다. StoreName 'AuthRoot', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'CN = SignedByTemp'. " – Morgeh