클라이언트를 인증하기 위해 인증서를 사용하도록 WCF 서비스를 설정하려고합니다. 나는 인증서를 만드는 방법에 관한 수많은 책을 읽었으며 그렇게 할 수있었습니다 (마침내).WCF, 인증서 인증 - 일반적인 오류 및 혼동스러운 인수
Cert Authority와 Cert를 Windows 2008 R2를 실행하는 서버에 설치합니다. MMC 인증서 스냅인을 열면 컴퓨터 계정을 선택합니다. 이 올바른지? 내 WCF 서비스가 Windows 서비스로 실행하기 때문에이 일을하고, 어떤 사용자의가 로그인되지 않은 경우에도 실행됩니다 그러나 일반적으로 인정 하듯이, 나는 차이가 세 가지 옵션 사이에 무엇인지 모르겠어요.
- 스냅인로드되면 내 사용자 계정
- 서비스 계정
- 컴퓨터 계정
, 나는 신뢰할 수있는 루트 인증 기관에 기관 CERT는 가져옵니다. 그런 다음 인증서를 신뢰할 수있는 게시자에 가져옵니다. 이 작업을 수행 할 때 어떤 오류도 발생하지 않습니다. Authority Cert와 해당 기관에서 서명 한 Cert 모두 가져 오기를 수행 할 때 .pvk 파일을 참조하지 않습니다. 개인 키가 인증서 또는 권한 인증서에 포함되어 있다는 것은 나의 이해입니다. 다음은 각 인증서를 작성하는 데 사용하는 명령입니다.
MakeCert.exe
-n “CN=InternalCA”
-r
-sv InternalCA.pvk InternalCA.cer
-cy authority
MakeCert.exe
-sk InternalWebService
-iv InternalCA.pvk
-n “CN=InternalWebService”
-ic InternalCA.cer InternalWebService.cer
-sr localmachine
-ss root
-sky exchange
-pe
주의 -ss 루트를 사용합니다. -ss My를 사용하여 많은 게시물을 보았습니다. 나는 그 차이가 무엇인지 또는 각 값을 사용하는 것이 적절한지를 정말로 이해하지 못합니다.
내 WCF 서비스는 관리 서비스 (Windows 서비스) 내에서이 컴퓨터에서 실행됩니다. 나는 WCF 서비스를 호스팅 내 Windows 서비스를 시작하면 즉시 충돌 및 겉으로는 일반적인 오류가 이벤트 뷰어에보고됩니다
System.ArgumentException : 그것은 가능성이 해당 인증서 'CN = TempCertName'할 수있다 는 키 교환 또는 프로세스의 내가으로 서비스를 실행하는 사용자에게 권한을 부여 할 필요가 말할 게시물을 발견 한 개인 키
에 대한 액세스 권한이없는 수 있습니다 할 수있는 개인 키를 가지고 있지 열쇠.
는이 하나에 유래 여기에 인기있는 대답을 것 같다 : Grant access with All Tasks/Manage Private Keys
그러나 나는/모든 작업의 옵션이 개인 키
을 관리하지 않는하지만 방법에 대한 명확하지 않다 하기 위해서. 또한 서비스는 내 도메인 계정으로 실행됩니다.이 계정은 관리자이고 인증서를 설치 한 사용자와 동일합니다.
:
나는이 도움이된다면 거 볼 수 있어요 :. http://stackoverflow.com/questions/893336/wcf-with-nettcpbinding-and-certificate-transport-security/893399#893399 – essedbl