前言
学习了SSM框架之后,对war包部署十分不熟悉,从前都是用宝塔进行傻瓜式部署的,这次发现怎么部署都不对,摸索了一番终于弄好了,记录一下。
准备war包
使用ssm框架并用maven管理项目的话,只需要执行package命令即可。在target里可以看到打包好的war包
准备Tomcat
下载安装
https://tomcat.apache.org/download-90.cgi
进入官网下载界面,下载core里的tar.gz即可
上传到服务器后进行解压,假设{{tomcat}}为我们tomcat的目录
放开端口
需要查看宝塔、服务器商
安全组中放开8080端口
启动tomcat
打开{{tomcat}}/bin
运行startup.sh
如果不成功,提示
Cannot find /developer/apache-tomcat-7.0.73/bin/setclasspath.sh
This file is needed to run this program",
需要检查环境变量,或者干脆执行
unset CATALINA_HOME
浏览器输入http://ip:8080
出现tomcat经典界面说明启动成功
上传war包并测试
将war包上传在{{tomcat}}/webapps目录中
tomcat会自动解压
访问http://ip:8080/项目名/
出现正常结果说明部署成功
绑定域名
域名解析
进入域名服务商,将域名解析绑定到服务器ip上
修改server.xml
翻到最后,</Engine>标签和</Host>中添加如下
<Host name="aaa.bbb.com" appBase="webapps/websitename"
unpackWARs="true" autoDeploy="true">
</Host>
name中修改为你绑定的域名
appBase中为项目的相对路径
测试http://aaa.bbb.com:8080/websitename/
大功告成!
配置SSL证书
给tomcat这个网站上ssl证书,使用免费的let's Encrypt
注册并创建证书
-
搜索来此加密
-
注册并登录
-
申请证书,注意使用域名方式,泛域名版本可以包括子级所有域名
-
验证证书,使用text解析法,方便快捷
Tomcat上部署
-
证书拿到后进行下载
-
压缩包里certificate.pfx和detail.txt 是我们需要的内容
-
前者放在服务器{{tomcat}}/cert文件夹中(文件夹需要自己创建)
-
在server.xml中已有的connector标签平行地方插入如下语句,只需要更改keystorePass即可
证书密码是detail.txt中的pfx导入密码
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/certificate.pfx" keystoreType="PKCS12" keystorePass="证书密码" clientAuth="false" sslProtocol="TLS"/>
-
修改后 使用https://aaa.bbb.com/websitename/ 进行访问
注意不再需要加:8080(是不要加,而不是不必加),因为https默认443端口
出错修复
注意,需要重启服务器,才能更换成功!!!!
证书给出的是完整的证书,在安卓上会报错
详见
原理:https://www.it163.com/support/336.html
报错处理:https://www.cnblogs.com/jungejava/p/11208249.html
在经历了心态爆炸之后,我打算用阿里云的ssl证书了,阿里云牛逼!
这里记录几点坑
-
pfx证书可以使用,也不需要把中间证书导进来(如果你是使用的阿里云的话)
-
要严格按照阿里云的要求来https://help.aliyun.com/document_detail/98576.html
-
注意配置Connector时,protocol="HTTP/1.1"改为protocol="org.apache.coyote.http11.Http11NioProtocol"
-
keytool -changealias -keystore domain name.pfx -alias alias -destalias tomcat一定要执行,linux控制台cd到cert目录,执行上述命令,只需要把domain name替换成你的证书文件名字
-
证书更新记得一定要重启服务器,包括更高server.xml一样
-
host也可这也配置
可以选择把Engine的defaultHost改为你的域名,这样ip访问会失效,亲测不改也可以,ip和域名都使用
续费SSL证书
每年都要续费一次免费证书,这里更新一下如何续费免费证书
购买
- 登录管理控制台,进入SSL证书
- 点击立即购买,选择免费的证书
- 点击创建证书,证书申请页,输入之前的域名,选择自动/手动DNS验证,CSR生成选择系统生成,点击下一步,验证DNS域名解析
重新部署
点击下载,选择tomcat的,下载下来是一个pfx证书和密码txt文件。
- 进入服务器,进入tomcat安装目录
- 进入conf的server.xml查看之前证书部署在哪(搜索.pfx)
- 修改xml这项中的keystorePass里的密码为压缩包密码里的密码
- 进入keystoreFile里的目录,重新上传pfx文件(保持文件名相同)
重启tomcat
- 进入tomcat的bin目录
- unset CATALINA_HOME
- ./shutdown.sh
- ./startp.sh
验证
进入域名,查看证书时间,证书时间已经更新