개념 증명을해야하며 지금까지는 도움이되지 않는 IIS6을 참조하는 주로 오래된 기사를 찾습니다.IIS 7.5 및 클라이언트 인증
즉, 다음과 같은 요구 사항이 있습니다.
클라이언트 인증서 만 사용하여 하나의 파일/페이지와이 파일/페이지를 보호해야합니다. 사이트의 나머지 부분은 SSL 하에서 계속 작동해야하지만 클라이언트 인증서가 필요하지 않습니다. 단 하나의 파일입니다. 매핑은 C#/VB.NET을 통해 프로그래밍 방식으로 수행되므로 사용자 매핑이 금지됩니다.
이제는 어렵지 않을 것입니다. Request.ClientCertificate 속성에 액세스해야한다는 것을 의미하지만 내 테스트에서는 클라이언트 인증서를 전선을 따라 이동시킬 수 없다는 것입니다.
IIS를 하나의 폴더에 설정하여 SSL을 요구하고 클라이언트 인증서를 수락하고 클라이언트 인증서가 필요하지만 iis에서 페이지를 방문한 후에는 모두 HTTP/1.1 403 Forbidden
입니다. 클라이언트 인증서를 선택하라는 요청을받은 적이 없기 때문에 서버에 보내면 내 요청이 모두 통과되어 삭제됩니다.
이것을 테스트하기 위해 일부 코드를 사용하는 경우 더 이상 해집니다. 이 클라이언트 코드에서 CertPolicy 클래스는 cert 오류를 무시하는 메서드에서 true를 반환하고 test.cer은 MakeCert를 사용하여 만든 자체 서명 된 인증서입니다. 그냥 분명히하지만, 클라이언트 인증서 만 자체 서명, 주요 인증서가 제대로 서명되어 있지만 내가 피들러와 많이 놀고 나는 그 해킹 콜백을 가지고 왜 그렇게 그 인증서를 신뢰할 수 없습니다.
Dim Cert As X509Certificate = X509Certificate.CreateFromCertFile("Cert\test.cer")
' Handle any certificate errors on the certificate from the server.
ServicePointManager.CertificatePolicy = New CertPolicy()
' You must change the URL to point to your Web server.
Dim Request As HttpWebRequest = DirectCast(WebRequest.Create("https://local.domain.com/Cert/Server/"), HttpWebRequest)
Request.ClientCertificates.Add(Cert)
Request.UserAgent = "Client Cert Sample"
Request.Method = "GET"
Dim sr As StreamReader
Using Response As HttpWebResponse = DirectCast(Request.GetResponse, HttpWebResponse)
' Print the repsonse headers.
output.AppendFormat("{0}\r\n", Response.Headers)
output.AppendLine()
' Get the certificate data.
sr = New StreamReader(Response.GetResponseStream, Encoding.Default)
Dim count As Integer
Dim ReadBuf() As Char = New Char((1024) - 1) {}
Do
count = sr.Read(ReadBuf, 0, 1024)
If Not 0 = count Then
output.AppendLine(New String(ReadBuf))
End If
Loop While (count > 0)
End Using
는 대상 페이지는 내가 수락하거나 클라이언트 증명서를 무시하지만, 필요하지 IIS를 설정하면 항상 반환 부착 된 인증서 표시의 수를 반환합니다.
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim cs As HttpClientCertificate = Request.ClientCertificate
Response.Write(cs.Count)
Response.End()
End Sub
사람이 나 클라이언트 증명서는 요구에 부착 그냥 좋은 것이 통과 될 수 있도록 IIS7.5을 구성하는 방법을 찾을 수 있습니다 경우
.
만약 당신이'SslRequireCert'를 지정하면'SslNegotiateCert'도 지정해야합니다. – AakashM
는 당신이 뭔가있는 것처럼 보입니다. http://stackoverflow.com/questions/14407666/how-do-i-implement-client-certificate-authentication-the-right-way를 확인하고 내가 찾고있는 필요한 정보를 제공 할 수 있습니까? 이 답변과 관련된 중요한 점은 구성의 serverpart에 대한 web.config에서이 ClientCertificateMappingAuthentication-node의 중요성입니다. –