栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Tomcat 配置https 踩坑

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tomcat 配置https 踩坑

需求:


公司项目目前是部署在tomcat上用http的形式来访问的,可以通过外网IP和域名加端口号进行访问,然后因为要做个微信小程序的功能,小程序的平台配置里面后台通讯好像又必须是https 的方式访问,于是就准备给tomcat 配置一下https 的访问方式.然后没想到,这个坑整整搞了我三天时间,期间又掉了无数的头发.
环境t : omcat 9.0(http 方式IP和域名都可以正常访问) + 阿里云服务器 + 菜鸟一枚    

现象:

根据网络上的配置,配置完成后不管是在服务器上还是在其他机器上用https+域名用IP访问都是失败但是在本机上用https:localhost和https:127.0.0.0.1的方式可以访问,然后用http的方式是IP和域名都是正常可以访问的;防火墙是关闭的,端口也已经开放了,这就很纳闷了!之前一度怀疑是tomcat的配置有问题,各种百度尝试.也猜测过是不是证书有问题不能自己生成的

配置:

配置方法网络上百度了一堆,基本都是类似的也没有问题,都是通过keytool 的命令生成ssl 证书,然后在tomcat 的service.xml 文件里面增加一个https 的配置.只不过,百度上各种版本有几个问题:

  1. 在生成证书的时候输完密码后有几个问题,有的人说那个姓氏的问题要填你的域名或者IP 不能乱填,但是这个我这边实验是没有影响的.
  2. 还有生成证书的时候会提示你说:[JKS 密钥库使用专用格式。建议使用]这个有人说要处理我没处理也可以;
  3. 然后还有些人配置说要生成那些客户端证书,服务端客户端互相信任,我试了如果只是单纯的访问的话只要做到生成SSL证书 然后配置service.xml 即可,但是访问的时候会提示不信任,忽略即可.

生成SSL证书命令(必须): 红色部分可以自己定义下同

keytool -genkey -v -alias tomcat1 -keyalg RSA -keystore E:/web/keyFile/tomcat1.keystore -validity 36500

生成客户端证书:

keytool -genkey -v -alias mykey  -keyalg RSA -storetype PKCS12 -keystore E:/web/keyFile/mykey.p12

通过上面生成的客户端证书导出可安装的证书:(123456是密码)

keytool -export -alias mykey  -keystore  E:/web/keyFile/mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:/web/keyFile/mykey.cer

客户端证书导入到证书库信任列表

keytool -import -v -file E:/web/keyFile/mykey.cer -keystore E:/web/keyFile/tomcat1.keystore

客户端信任服务器证书

keytool -keystore  E:/web/keyFile/tomcat1.keystore -export -alias tomcat1 -file  E:/web/keyFile/tomcat1.cer 

service.xml配置

 坑:

        按照上面的配置,配置完成后然后尝试通过https+域名+端口/https+外网IP+端口访问.一律失败;
但是通过http+域名+端口/http+外网IP+端口访问正常,然后有人然后各种尝试网上不同的配置差异.然后突然想到试试https+localhost/https+127.0.0.1/方式访问;竟然可以,喜极而泣.虽然没有成功但是至少有希望了.然后开始往这方面查询尝试;关防火墙,开放入站端口,还是不行,最终发现一个阿里云服务器要开通安全组策略配置(端口放行)阿里云服务器(ECS)实战--安全组策略配置(端口放行) - 百度文库

解决:

       生成ssl证书 + service配置 + 端口开放 + 服务器端口映射

       有个免费证书信任处理https://freessl.org/ 没有操作验证,感觉还挺靠谱的有需要可以了解一下.

反思:
  1. 这个排版感觉很干巴.都是大段大段文字看起来都不想看了,需要注意提升一下;
  2. 思路很重要,刚开始在配置上死磕纠结这个配置对不对,证书是不是有问题,一直往这两个方向搜索肯定是没有结果的,从localhost和127.0.0.1的尝试上转变思路去查就可以很快定位到问题
  3. 基础知识点提升,服务器的一些常识,请求http 的常识.
  4. 还有些知识点没有弄清楚,像那个互相信任的,证书的导入的.还有证书不信任的处理方式,单向信任双向信任概念,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009111.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号