V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BQsummer
V2EX  ›  SSL

求助, tomcat 的 ssl 配置和 server.xml 配置

  •  
  •   BQsummer · 2017-08-08 15:29:45 +08:00 · 2300 次点击
    这是一个创建于 2666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    狗爹买的证书,根据说明一步一步配置的.

    1. 在本地生成 csr 和 keystore
    2. 提交 csr,下载证书
    3. 导入 gd_bundle-g2-g1.crt 为 root, gdig2.crt.pem 为 intermed, e67944f1b9f6749a.crt 为 tomcat
    4. server.xml 配置:
    <?xml version='1.0' encoding='utf-8'?>
    
       <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.JasperListener" />
         <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
         <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
         <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
    
         <GlobalNamingResources>
           <Resource name="UserDatabase" auth="Container"
                     type="org.apache.catalina.UserDatabase"
                     description="User database that can be updated and saved"
                     factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                     pathname="conf/tomcat-users.xml" />
         </GlobalNamingResources>
    
         <Service name="Catalina">
    
           <Connector port="8080" protocol="HTTP/1.1"
                      connectionTimeout="20000"
                      redirectPort="8443" />
    
           <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                      maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                      clientAuth="false" sslProtocol="TLS" 
               keystoreFile="ssl/tomcat.keystore" keystorePass="pgg353353" />
    
           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    
           <Engine name="Catalina" defaultHost="localhost">
    
             <Realm className="org.apache.catalina.realm.LockOutRealm">
               <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                      resourceName="UserDatabase"/>
             </Realm>
    
             <Host name="www.pggsuite.org"  appBase="pggsuite"
                   unpackWARs="true" autoDeploy="true">
               <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                      prefix="localhost_access_log_pggsuite." suffix=".txt"
                      pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
             </Host>
    
             <Host name="www.pggtools.org"  appBase="pggtools"
                   unpackWARs="true" autoDeploy="true">
               <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                      prefix="localhost_access_log_pggtools." suffix=".txt"
                      pattern="%h %l %u %t &quot;%r&quot; %s %b" />
             </Host>
    
           </Engine>
         </Service>
       </Server>
    
    1. 启动后日志没有任何报错
    2. http 正常(pggtools.org),https( https://pggtools.org:8443)打不开 现在是没有任何头绪, 日志里没有报错, 不知道该怎么查原因. 还有就是 server.xml 里面是多 host 的, name 填 pggtools.org,那么只能通过 pggtool.org 访问,不能通过 www.pggtools.org, 相反 name 填 www.pggtools.org 是同样的,有办法解决吗?
    1 条回复    2017-08-09 13:35:55 +08:00
    matsuz
        1
    matsuz  
       2017-08-09 13:35:55 +08:00
    如果你的代码没用到 TLS Session 或一些其他 TLS 的高级功能的话可以考虑 Tomcat 只启用 HTTP,然后前端套一个 Nginx(Unix) 或者 IIS(Windows),让它们来搞定 HTTPS 的问题。

    另外你是 HTTP 不能通过 www 子域名访问还是 HTTPS 不能?如果是后者的话看看你的证书里面是不是只签了一个域名进去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.