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

2017-08-08 15:29:45 +08:00
 BQsummer

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

  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 是同样的,有办法解决吗?
2195 次点击
所在节点    SSL
1 条回复
matsuz
2017-08-09 13:35:55 +08:00
如果你的代码没用到 TLS Session 或一些其他 TLS 的高级功能的话可以考虑 Tomcat 只启用 HTTP,然后前端套一个 Nginx(Unix) 或者 IIS(Windows),让它们来搞定 HTTPS 的问题。

另外你是 HTTP 不能通过 www 子域名访问还是 HTTPS 不能?如果是后者的话看看你的证书里面是不是只签了一个域名进去。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/381389

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX