2013-05-27 2 views
0

SSL 용 자체 서명 (makecert.exe) 인증서를 사용하여 QA에서 테스트중인 자체 호스팅 WCF 서비스가 있습니다. 웹 서비스가 관리자 권한과 .BAT 파일을 사용하여 시작된 경우 프로그램은 SSL 끝점을 시작하는 데 문제가 없습니다.WCF 인증서 사용 권한 문제

그러나 웹 서비스를 "NT Authority \ System"으로 실행하는 일반적인 Windows 서비스로 시작하면 프로그램이 자주 시작되지만 (항상 그렇지는 않습니까?) 실패 할 수 있습니다. 나는에 인증서를 할당하려면이 관련 NetShell 명령을 사용

makecert -iv Cas_temp_Authority.pvk -n "CN=ServerName" ServerName.cer -sv 
ServerName.pvk -ic ServerName.cer -sr localmachine -ss my -sky exchange -pe -eku 
1.3.6.1.5.5.7.3.1 

: 키 교환 또는 프로세스가 개인 키 "

에 대한 액세스 권한이 없을 수 있습니다 할 수있는 개인 키 이것은 내가 사용하는 makecert 명령입니다 포트

netsh http add sslcert ipport=0.0.0.0:8086 certhash=755f7fcf49ff3f06d9d7e551a10ef35776f2dc57 
appid={42e1d4bf-7106-4666-90f7-4634456fb7f1} clientcertnegotiation=enable 

6,내가 포트 권한을 설정하려면이 관련 NetShell 명령을 사용 :

netsh http add urlacl url=https://+:8086/ServiceName/MethodName/ 
user="NT Authority\System" 

내가 인증서 또는 프로그래밍 코드 아무 문제가없는 알고 잘못된 것이 있다면 서비스가 전혀 시작되지 않을 것입니다. 여기서 문제는 .EXE를 사용하는 관리자로만 시작되며 일반 Windows 서비스로 시작되지 않는다는 것입니다.

어떤 도움을 주셔서 감사합니다.

+0

인증서를 호스팅하는 저장소 위치를 확인해야합니다. –

+0

Toan, 가게는 괜찮은 것 같습니다. 서비스가 관리자 권한으로 실행될 때 인증서를 찾을 수 있으면 "NT Authority \ System"으로 찾지 않아야합니까? 이것이 바로이 문제에 당혹 스러울 것입니다. – Brian

답변

0

Microsoft의 winhttpcertcfg 도구를 사용해 보셨습니까?

winhttpcertcfg -g -c LOCAL_MACHINE\MY -s [cert common name] -a "NT Authority\System" 
+0

네, 저것을 시도했습니다. 나는 내가 그곳에서하려고하는 것을 포기하고 주위에 일을 만들었다 고 생각한다. 그래도 고마워. – Brian