Windows 서비스가 로컬 시스템 권한으로 실행되는 서버 하나와 클라이언트가 세 대 있습니다. 클라이언트와 서버는 SSL과 TCP (SSLStream 클래스 C++ \ CLI http://msdn.microsoft.com/en-us/library/system.net.security.sslstream(v=vs.90).aspx#Y1124)를 사용하여 상호 인증됩니다.SSL을 통한 TCP 인증서로 Windows 서비스 인증
문제는 호스트를 인증하기 때문에 3 개의 인증서 (각 클라이언트마다 하나씩)가 필요하다는 것입니다. . 이제 Windows 서비스 및 이 아닌 호스트를 인증하려고하므로 모든 호스트에 대해 동일한 인증서를 배포 할 수 있습니다.
누구나 어떻게 알 수 있습니까?
--- EDIT 1 ---- 내가하고 싶은 것을 보여주기 위해. 모든 Microsoft Office 복사본에는 암호화 된/인증 된 채널을 통해 Microsoft 서버와 통신하는 데 사용되는 인증서가 배포됩니다.
-이 해결 - 존 말했듯이
내 문제는 SslStream 클래스는 호스트 이름을 포함 표준 유효성 검사를 수행이었다. 나는 커스텀 RemoteCertificateValidationCallback을 제공하고 이제는 작동한다.
bool ValidateServerCertificate(Object^ sender, X509Certificate^ certificate, X509Chain^ chain, SslPolicyErrors sslPolicyErrors) {
Console::Write("[+] Validating server certificate: ");
// check certificate hash
if(certificate->GetCertHashString()->Equals("cert hash")) {
Console::Write("oK\n");
return true;
}
Console::Write(" ERROR\n");
Console::WriteLine("[-] Hash doesn't match");
// Do not allow this client to communicate with unauthenticated servers.
return false;
}
는 클라이언트와 동일한 Windows 도메인의 서버 모두 예를 들어, 여기에 맹목적으로 어떤 인증서를 받아 발리이야? 인터넷을 통해 서버에 액세스합니까? –
아니요, 그들은 같은 도메인에 있지 않으며 그렇습니다. 서버는 인터넷을 통해 액세스됩니다. – DropTheCode
그래서 세 개의 호스트 모두에 동일한 인증서를 배포하고이를 인증에 사용 하시겠습니까? 어떻게 배포하고 싶습니까? '.pfx' 파일? – Jon