문제

이 질문은 모두 해결에 관한 것입니다 SslPolicyError.RemoteCertificateNotAvailable 오류.

SSLStream과 다른 쪽 끝을 위해 TCP 서버를 개발했습니다.

서버를 다음과 같이 인증합니다.

sslStream.BeginAuthenticateAsServer 

클라이언트를 다음과 같이 인증합니다.

sslStream.BeginAuthenticateAsClient

고객 인증서를로드하고 있습니다 Trusted Publishers - Local Machine.

둘 다 같은 기계에서 실행 중입니다.

신뢰할 수있는 Publishers Store가 아닌 .cer 및 .pfx 파일에서 클라이언트 인증서를로드하려고 시도했습니다. 그러나 서버의 클라이언트 (원격) 인증서 유효성 검사기 콜백은 SslPolicyErrors a RemoteCertificateNotAvailable 오류.

도움이 되었습니까?

해결책

링크는 통과하지 못했지만 그 진술과 함께 발견 할 수있는 문제가 있습니다.

"신뢰할 수있는 게시자로부터 내 고객 인증서를로드했습니다."

클라이언트 인증서는 일반적으로 사용자 계정의 개인 상점에 거주합니다. 서버 인증서와 동일합니다 (그러나 "클라이언트 인증"대 "서버 인증"과 관련된 다른 의도 된 목적 OID가있을 수 있습니다). The Trusted Publishers Store에서 개인 키가있는 인증서를 보유하는 것은 이상합니다.

certmgr.msc에서 클라이언트 또는 서버 인증서를 두 번 클릭하면 "이 인증서에는 개인 키가있는"메시지가 하단에 표시됩니다.

그렇지 않은 경우 키 쌍의 절반 만 있습니다. 암호화 및 인증에는 개인 키가 필요합니다. 서버 인증은 서버 끝에 개인 키가 필요하며 클라이언트 인증서에는 클라이언트 엔드에서 개인 키가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top