2017-02-03 4 views
0

sslConfig : true로 NeedClientAuth 설정Jetty가 지정된 자원에 대한 클라이언트 인증서를 요청하도록 구성하는 방법은 무엇입니까?

<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> 
    <Set name="KeyStorePath">../conf/jetty/etc/keystore</Set> 
    <Set name="KeyStorePassword">secretpass</Set> 
    <Set name="KeyManagerPassword">test</Set> 
    <Set name="TrustStorePath">../conf/jetty/etc/truststore</Set> 
    <Set name="TrustStorePassword">secretpass</Set> 
    <Set name="EndpointIdentificationAlgorithm"></Set> 
    <Set name="NeedClientAuth">true</Set> 
    <Set name="WantClientAuth">true</Set> 
</New> 

는 모든 리소스에 대해 인증서를 제공하기 위해 클라이언트가 필요합니다. 하지만 제 경우에는 지정된 자원에 대해서만 인증서를 요청하고 싶습니다. 내가/리소스 1/* 에 대한 인증서를 요청만을위한 HTTPS를 사용할 필요가 예를 들어

/resource2/*

내가 어떻게 이것을 달성 할 수 있습니까?

답변

1

SSL/TLS 협상 단계는 요청이 실제로 이루어지기 전에 발생하므로 불가능합니다.

HTTP 요청에있는 정보가 아직 SSL/TLS 협상시 전송되지 않았기 때문에 웹 서버가 요청한 리소스를 기반으로 다른 SSL/TLS 규칙을 적용 할 수 없습니다.

중요하면 다른 포트에 2 개의 다른 ServerConnector를 설치하십시오. 클라이언트 인증과

  1. ServerConnector - 클라이언트 인증 요구 사항을 필요로하지 않는 모든 다른 웹 자원을 (심지어 /resource1/* 내용이없는 참조) - /resource1/* 내용은
  2. ServerConnector 클라이언트 인증없이 여기에서 제공됩니다