分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

tomcat搭建https服务

发布时间:2023-09-06 01:55责任编辑:林大明关键词:httptomcat

平时做自己的web demo基本上都是用http协议进行访问。

但是正式情况基本上都是https进行访问,所以掌握https的配置是很关键的。

需要准备的材料:

  一台可以可以外网访问的远程服务器

  tomcat 8.5

  java环境(自行百度安装过程和配置环境变量)

  web项目war包(可有可无)

第一步:

  在远程服务器上配置好java环境后就是安装tomcat:

  详情请见(tomcat安装、配置、使用):https://www.cnblogs.com/longLifeFrog/articles/8612260.html

  过程是windows的,但是lunix也大同小异,思路基本一样,可以自行百度搜索相关安装过程

第二步:

  由于我这台远程服务器开了2个端口8080和443。

  所以这步要完成用tomcat部署2个不同端口的项目。

  先将webapps文件夹和conf文件夹下面的Catalina文件夹,copy一份,如下图所示:

  

  

  接下来是修改conf/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.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"> ???<!--http配置--> ??<Connector port="8080" protocol="HTTP/1.1" ???????????connectionTimeout="20000" ???????????redirectPort="8443" /> ???????<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="localhost" ?appBase="webapps" ???????????unpackWARs="true" autoDeploy="true"> ???????<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" ??????????????prefix="localhost_access_log" suffix=".txt" ??????????????pattern="%h %l %u %t &quot;%r&quot; %s %b" /> ?????</Host> ???</Engine> ?</Service> ???<Service name="Catalina2"> ???<Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" maxThreads="150" ???????????????redirectPort="8443" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" ??????????????keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.5\www.xxxx.com.jks" keystorePass="xxxxxx" ???????????????/> ???<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> ???<Engine name="Catalina2" defaultHost="localhost"> ?????<Realm className="org.apache.catalina.realm.LockOutRealm"> ???????<Realm className="org.apache.catalina.realm.UserDatabaseRealm" ??????????????resourceName="UserDatabase"/> ?????</Realm> ?????<Host name="localhost" ?appBase="webapps2" ???????????unpackWARs="true" autoDeploy="true"> ???????<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" ??????????????prefix="localhost_access_log" suffix=".txt" ??????????????pattern="%h %l %u %t &quot;%r&quot; %s %b" /> ?????</Host> ???</Engine> ?</Service></Server>

  上图中8080端口是http形式,如果要将其改成https可以参考443端口的配置。

Connector标签中的属性说明:
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书(虽然上图中并没有使用,但是自签发的时候要用到)
truststorePass:根证书密码(虽然上图中并没有使用,但是自签发的时候要用到)

  上图中www.xxxx.com.jks是从权威机构拿到的证书,keystorePass填相应的密码。

第三步:

  copy项目到webapps和webapps2,然后运行startup,访问。这样就成功了。

补充:

  1、http自动跳转https的安全配置:

    到conf目录下的web.xml。在 </welcome-file-list>后面, </web-app>之前,也就是倒数第二段里,加上这样一段:

<login-config> ???????<!-- Authorization setting for SSL --> ???????<auth-method>CLIENT-CERT</auth-method> ???????<realm-name>Client Cert Users-only Area</realm-name> ???</login-config> ???<security-constraint> ???????<!-- Authorization setting for SSL --> ???????<web-resource-collection> ???????????<web-resource-name>SSL</web-resource-name> ???????????<url-pattern>/*</url-pattern> ???????</web-resource-collection> ???????<user-data-constraint> ???????????<transport-guarantee>CONFIDENTIAL</transport-guarantee> ???????</user-data-constraint> ???</security-constraint>

结果如下图所示:

  

这步目的是让非ssl的connector跳转到ssl的connector去。所以还需要前往server.xml进行配置:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="443" />

redirectPort改成ssl的connector的端口443,重启tomcat后便会生效。

以上是权威证书的https配置方法。

tomcat搭建https服务

原文地址:https://www.cnblogs.com/longLifeFrog/p/9067147.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved