톰캣 http를 https로

톰캣 http를 https로

나는 Tomcat을 처음 사용하는데 이 경우 내 웹사이트에서 작업할 수 있습니다.

http://myserver:8080/path/login/login.html

포트 8443을 사용하여 https를 활성화하고 싶습니다.

https://myserver:8443/path/login/login.html

일반 사용자로 tomcat을 사용하는데 구성은 다음과 같습니다.서버.xml, 이것웹사이트:8443내 SSL 인증서를 사용하고 있으며웹사이트:8080더 이상 작동하지 않습니다. http 모드가 더 이상 작동하지 않는 것이 정상인가요? https로 직접 리디렉션하려면 어떻게 해야 하나요? web.xml에 유명한 그룹이 있나요?

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />


<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               compression="on"
               compressionMinSize="2048"
               compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,text/json,application/x-javascript,application/javascript,application/json" />


<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/cert.key"
                         certificateFile="conf/cert.crt"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

매우 감사합니다

답변1

아니요, 모든 커넥터는 독립적으로 작동해야 합니다. Tomcat을 다시 시작하기 전에 실행 중인 Tomcat 인스턴스를 중지하고 다른 애플리케이션에서 해당 포트를 사용하고 있지 않은지 확인하십시오.

또한 catalina.log시작 후 어떤 일이 발생하는지 확인하세요. 다음과 같이 포트당 하나의 로그 메시지가 포함되어야 합니다.

04-Dec-2020 19:24:16.658 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Dec-2020 19:24:16.750 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-apr-8443"]
04-Dec-2020 19:24:16.782 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
04-Dec-2020 19:24:16.825 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [8,729] milliseconds

conf/web.xml모든 웹 애플리케이션에 대해 모든 요청을 HTTP에서 HTTPS로 리디렉션하려면 마지막 줄 (CATALINA_BASE 또는 CATALINA_HOME 디렉터리) 앞 끝에 다음 코드 조각을 추가하세요 </web-app>.

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

전송 보장 값은 CONFIDENTIAL이 패턴과 일치하는 모든 URL이 보안 연결을 사용함을 의미합니다 . 즉, SSL이 아닌 요청은 커넥터 설정에 정의된 연결 /* 로 리디렉션됩니다 .redirectPort

관련 정보