2010-11-25 8 views
3

최근 SSL 및 클라이언트 인증을 사용하여 tomcat 6을 구성했지만 서버 구성 파일 (web.xml, server.xml)을 수정하는 것이 유일한 방법입니다. 그러나 배포 서버를 완전히 제어 할 수 없기 때문에 기본 구성 파일을 수정하지 않고 응용 프로그램의 일부 페이지 나 URL 패턴에 대한 모든 것을 구성하고 싶습니다.Tomcat의 특정 페이지/URL 패턴 용 SSL

예를 들어

: 홈페이지 서버 :

  • 응용 프로그램 1 -> HTTP
  • 응용 프로그램 2 -> HTTP
  • 에서는 MyApplication -

누군가가 그것을 수행하는 방법을 알고있는 경우> HTTPS주세요 말해.

답변

8

<service> 태그 아래의 server.xml 파일에 적절한 커넥터를 쓰는 방법은 https를 실행하는 것입니다. 커넥터를 설정하면 http 또는 https로 서버의 모든 응용 프로그램에 액세스 할 수 있습니다. 유일한 차이점은 커넥터가 사용되는 것입니다. HTTP 및 HTTPS에 대한 일반적으로 커넥터는 다음과 같이 :

<Connector port="80" protocol="HTTP/1.1" 
      maxThreads="150" connectionTimeout="20000" 
      redirectPort="443" 
      URIEncoding="UTF-8" compression="on"/> 

<Connector port="443" protocol="HTTP/1.1" 
      maxThreads="150" connectionTimeout="20000" 
      SSLEnabled="true" scheme="https" secure="true" 
      keystoreFile="conf/.keystore" 
      keystorePass="changeit" 
      clientAuth="false" sslProtocol="TLS" 
      URIEncoding="UTF-8" compression="on"/> 
그런 다음 응용 프로그램을 강제 할 수

항상 이런 일을 끝 web.xmltransport-guarantee 태그를 추가하여 HTTPS를 사용하도록 :

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Administrators</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Administrators</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

당신 정의한 다른 웹 리소스에 대해 transport-guarantee을 변경할 수 있습니다. 따라서 사이트의 특정 부분을 보호하고 다른 부분은 보호 할 수 없습니다.

마지막으로 커넥터가 server.xml인데 모든 응용 프로그램에 https를 사용하도록 강요하지 않습니다. https 커넥터 만 사용할 수 있습니다.

+0

감사를 정의하고 <filter-mapping> 필요합니다. –

+0

이 web.xml 구성은 클라이언트 인증을 활성화할까요? 왜냐하면 server.xml 구성에서 'clientAuth = "false"'가 표시되기 때문입니다. –

+0

클라이언트 인증은' CONFIDENTIAL'를 만들 때 적용됩니다. 클라이언트 인증없이 https를 사용할 수 있습니다. 자세한 내용은 http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html을 참조하십시오. – rmarimon

-1

@ rmarimon의 답변 외에도 을 server.xml으로 변경하려는 경우 Filter을 작성하여 응용 프로그램 URL을 확인하고 적절하게 http/https로 리디렉션해야합니다.

그러나, 필터는 여전히 나를 위해이 길을 가야하는 것 같다, web.xml의 설명 답변

+1

server.xml에 https가 구성되지 않은 경우 어떻게 https로 리디렉션 할 수 있습니까? – EJP