2014-10-14 3 views
0

여러 웹 서버 (> 20) 및 응용 프로그램 서버 (> 10)가있는 환경에서 작업하고 있습니다. 많은 고객의 웹 서비스를 호출 할 때 표준 SSL 핸드 셰이크 외에도 인증 요청에 인증서를 첨부해야합니다. 현재 우리는 각 서버의 로컬 저장소에 이러한 인증서를 유지 관리하고 있습니다. 더 많은 서버와 더 많은 클라이언트가 생겨도 유지 보수가 불가능합니다. 계획은 전용 인증서 서버로 인증서를 이동하는 것입니다..Net을 사용하여 원격 인증서 저장소에서 읽기

.Net의 원격 저장소에서 인증서를 검색하는 방법에 대한 문서를 찾았지만 아무것도 찾을 수 없었습니다. 누구든지 문서를 찾거나 공유 할 수있는 .Net 코드가있는 곳을 알고 있습니까?

답변

0

당신은 로컬 인증서 열거

public static X509Certificate2 GetCertificate(string subject, string machine) 
{ 
    var sp = new StorePermission(PermissionState.Unrestricted); 
    sp.Flags = StorePermissionFlags.OpenStore | StorePermissionFlags.EnumerateCertificates; 
    sp.Assert(); 
    return GetCertificate(subject, new X509Store(string.Format(@"\\{0}\MY", machine), StoreLocation.LocalMachine)); 
} 


public static X509Certificate2 GetCertificate(string subject, X509Store store) 
{ 
    store.Open(OpenFlags.ReadOnly); 

    try 
    { 
     var cert = MatchCert(store.Certificates, subject); 

     return cert; 
    } 
    finally 
    { 
     store.Close(); 
    } 
} 
+0

안녕과 동일 X509Store을 사용하여 원격 윈도우 스토어에서 읽을 수있다, 나는 항상 나 잘못된 네트워크 경로 X509Store 프롬프트 위의 코드 segment.It를 사용하여 원격 시스템에 액세스 할 수 없습니다입니다 storex = new X509Store (@ "\\ AA-LAP-111 \ MY", StoreLocation.LocalMachine); 조언 해주십시오. –

+0

서버 네트워크 이름을 확인하십시오 (우선) – oleksa

+0

먼저 서버 네트워크 이름을 확인하십시오. 그런 다음 mmc.exe를 실행하고 Ctrl + M을 누른 다음 권한을 확인하기 위해 원격 서버 인증서 저장소에 연결하려고합니다. 그리고 최신 하나 : 불행히도 당신은 인증서와 공개 키를 읽을 수 있습니다. 개인 키는 액세스 할 수 없으며 원격 서버에서 가져올 수 없습니다. 인증서를 네트워크의 개인 키와 함께 사용하려면 non.Net 코드에 대한 접근 방식을 변경해야합니다. 자세한 내용은 [link] http://stackoverflow.com/questions/27687798/cms-signing-in-net-with-certificate-chain-not-in-local-trusted-certificate-stor를 참조하십시오. – oleksa