Maison  >  Questions et réponses  >  le corps du texte

nginx - Tomcat configure le nom de domaine spécifié https sous plusieurs noms de domaine et le redirige de force

Comment faire en sorte que Tomcat force l'un des noms de domaine à utiliser https dans le cas de plusieurs noms de domaine ? Si l’on regarde de nombreuses configurations sur Internet, elles sont toutes réalisées sous le même nom de domaine.
Par exemple : il existe test.emp.com et testadmin.emp.com sur un Tomcat. Vous souhaitez maintenant forcer le contenu de testadmin.emp.com à utiliser l'accès https. Vous ne savez pas comment le configurer ?
En utilisant nginx pour configurer le port 433, nous avons constaté que testadmin.emp.com est effectivement accessible via https, mais il est également accessible via http. Ensuite j'ai ajouté une ligne au port d'écoute 80

server {  
  listen      80;  
  server_name    testadmin.emp.com;  
  return      301 https://$server_name$request_uri;  
} 

ou ajoutez
···

server{  
    server_name  testadmin.emp.com;;  
    listen 80;  
    index index.jsp;  

    if ($host = ' testadmin.emp.com;' ) {
        rewrite ^(.*)$  https:// testadmin.emp.com; permanent;  
    }
    location / {  
             proxy_pass http://127.0.0.1:8080;  
             proxy_set_header HOST $host;  
             proxy_set_header X-Real-IP $remote_addr;  
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
             proxy_set_header X-Forwarded-Proto $scheme;  
    }  
}

···
La boucle de redirection commence

怪我咯怪我咯2701 Il y a quelques jours1248

répondre à tous(1)je répondrai

  • 黄舟

    黄舟2017-05-27 17:47:07

    Aucun proxy inverse n'est requis, ajoutez simplement <security-constraint>configuration dans le web.xml du site sur lequel vous souhaitez HTTPS. Par exemple

    <security-constraint>
        <display-name>zzz</display-name>
        <web-resource-collection>
          <web-resource-name>xxx</web-resource-name>
          <url-pattern>/xxx/*</url-pattern>  ##指定需要强制https的url
          <http-method>DELETE</http-method> 
          <http-method>GET</http-method>
          <http-method>POST</http-method>
        </web-resource-collection>
        <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
      </security-constraint>
      <context-param>
        <param-name>ca_root</param-name>
        <param-value>/xxx/tomcat.keystore</param-value> ##指定服务器证书ks
      </context-param>

    répondre
    0
  • Annulerrépondre