1. 准备
- 阿里云服务器
- SSL数字安全证书
下载后有一个密钥文件(.pfx),密码文件(.txt)
- tomcat8.5
tomcat下载地址
先将tomcat安装部署并配置好,进行简单的运行测试。
参考过去文章:CentOS7-Tomcat8安装配置 - 需要与ssl绑定的域名地址
- 项目工程
2. 部署tomcat配置ssl
- 端口开放
● 在阿里云服务器中的实例安全组中开放443端口
● 在服务器配置防火墙允许443通过
// 运行443通过
sudo ufw allow 443
// 查看放开的端口
sudo ufw status
- 在tomcat中创建一个cert文件夹放置ssl文件
- 在tomcat的conf目录sever.xml中进行SSL绑定配置
- 配置默认端口跳转
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"/>
- 配置ssl
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
scheme="https"
SSLEnabled="true"
secure="true">
<SSLHostConfig>
<Certificate
# ssl文件地址
certificateKeystoreFile="/usr/tomcat/apache-tomcat-8.5.72/conf/cert/123456789.pfx"
# ssl 密码
certificateKeystorePassword="123456"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
- 域名与项目工程绑定:通过域名访问时将自动指向需要发布的项目中的页面
<Engine name="Catalina" defaultHost="www.123456.com">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.123456.com" appBase="/usr/tomcat/apache-tomcat-8.5.72/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 "%r" %s %b" />
<Context path="" docBase="/usr/tomcat/apache-tomcat-8.5.72/webapps/h5" reloadable="false" privileged="false"/>
</Host>
</Engine>
- 配置完成后,保存配置,进入tomcat的bin目录中重新启动tomcat
./shutdown.sh // 关闭服务
./startup.sh // 开启服务
3. 测试结果
输入地址: https://www.123456.com
测试成功!
4.遇见的问题
- 443端口占用
在这个问题上非常困扰,在配置ssl的过程中不小心配置了多处443端口并且开启,导致https访问无法成功。
apache2中添加了443
此处禁用时后续加上的,apache2中的443一直没有弄清楚是什么时候加上去的。禁用重启后就可以使用了。