.net core 不启用 https_SpringBoot2.1.1配置HTTPS后启动时UnsatisfiedLinkError解决方法

问题复现:

 / ___

Spring Boot 2.1.1版本,配置完HTTPS后启动,启动过程中没有出现什么异常信息,但是浏览器无法访问并且一访问立马报了上面日志中的第二和第三段异常信息。
于是二话不说,直接谷歌搜索“springboot java.lang.UnsatisfiedLinkError:org.apache.tomcat.jni.SSL.renegotiatePending(J)I”,从第一个stackoverflow里面的回答 就找到了解决方案(果然还是谷歌大法好!),主要是两种:

1.在pom.xml里指定tomcat的版本,覆盖springboot的默认配置,Spring Boot 2.1.1 集成的Tomcat 从9.0.12升级到了9.0.13。所以想继续使用9.0.12版本的话直接在properties下面指定tomcat.version为9.0.12就行了

<properties>
    

或者用Spring Boot 2.1.0的版本也行,但这毕竟不是长久之计,我们总不能都一直用着旧版本的吧。

2.手动编译安装tomcat-native
如果你用的是CentOS你会发现epel源里面有已经有现成的tomcat-native包,但它的版本是1.2.17的,Spring Boot 2.1.1版本如果配置HTTPS的话,就必须至少是1.2.18版本的,而epel源目前还没有更新至1.2.18版本,所以只能手动编译安装了。


去官网下载源码,目前最新的版本是1.2.19

如果已经通过yum源安装了就先卸载安装的旧版本

yum remove -y tomcat-native

按照官方的手册,先安装必要的依赖:

yum install apr-devel openssl-devel -y

解压,进入相应目录

cd /tmp
tar -zxvf tomcat-native-1.2.19-src.tar.gz

configure

=/usr/bin/apr-1-config 

其中--with-java-home后面指定JDK的路径。理论上所有JDK都可以,但建议使用与Tomcat一起使用的JVM相同的JVM版本。
--prefix指定编译后生成的文件的位置

编译安装

&& make install

编译完成后生成文件的目录结构大概是这样的:

fa751c79faf6150447428c1389f25019.png


我们只需要把libtcnative-1.a libtcnative-1.la libtcnative-1.so libtcnative-1.so.0 libtcnative-1.so.0.2.19这几个文件拷到/usr/lib64就可以了

cd /tmp/tomcat-native-1.2.19-src/output/lib
ls
cp libtcnative-1.a  libtcnative-1.la  libtcnative-1.so  libtcnative-1.so.0  libtcnative-1.so.0.2.19 /usr/lib64

再次启动,可以看到springboot成功的加载了最新版本的tomcat-native

5d72ac89e4e8ecd2c9bd9dc0070e0bfd.png

浏览器端也能正常访问了

8a834681882de31d028c0a890f26da30.png

附:

springboot配置HTTPS:

#pem生成jks
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name 

fullchain.pem和privkey.pem,正常配置apache的HTTPS会用到的2个文件,一个私钥文件和一个证书文件,可以在letsencrypt免费申请

在application.properties中配置:

= 

也可以直接用第一步生成的pkcs12文件

= 

小技巧:

vim 可以直接修改修改jar包的文本文件

需要在Linux下安装zip,unzip

yum install -y unzip zip

就像这样:

272a9e0c7eb1c341ef07ce2c82697da9.gif


这样就可以在服务器里直接修改jar包里的一些配置文件或者是静态资源,省的本地再重新打包上传了,很方便啊有木有?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值