springboot2.4开启HTTPS功能报DerInputStream.getLength(): lengthTag=111, too big异常
1.生成证书
keytool -genkey -alias emily -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore D:\emily.p12 -deststoretype pkcs12 -storepass 123456
2.将emily.p12证书放到项目resources目录下,在yml配置文件中添加配置
server:port: 443# 优雅停机shutdown: gracefulssl:# 是否启用SSL支持enabled: true# 标识秘钥存储中秘钥的别名key-alias: emily# 访问秘钥存储的密码key-store-password: 123456# 指定保存SSL证书的秘钥存储的路径(通常是jks文件)key-store: classpath:emily.p12# 秘钥存储的类型key-store-type: PKCS12# 要使用的SSL协议protocol: TLS
3.上述配置好之后按理启动服务就可以开启https能力,但是不幸报错了
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.at sun.security.util.DerInputStream.getLength(DerInputStream.java:599) ~[na:1.8.0_181]at sun.security.util.DerValue.init(DerValue.java:391) ~[na:1.8.0_181]at sun.security.util.DerValue.<init>(DerValue.java:332) ~[na:1.8.0_181]at sun.security.util.DerValue.<init>(DerValue.java:345) ~[na:1.8.0_181]at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1938) ~[na:1.8.0_181]at java.security.KeyStore.load(KeyStore.java:1445) ~[na:1.8.0_181]at org.springframework.boot.web.embedded.netty.SslServerCustomizer.loadStore(SslServerCustomizer.java:173) ~[spring-boot-2.4.1.jar:2.4.1]... 21 common frames omitted
看到上面的错误有点懵逼,秘钥生成的没问题的,之前已经测试过了,然后就开始度娘,最后添加一个maven插件解决;
<plugin><artifactId>maven-resources-plugin</artifactId><version>3.2.0</version><configuration><encoding>utf-8</encoding><!-- 解决Spring boot引起的profile失效问题 --><useDefaultDelimiters>true</useDefaultDelimiters><!-- 过滤后缀为p12、pem、pfx的证书文件 --><nonFilteredFileExtensions><nonFilteredFileExtension>p12</nonFilteredFileExtension><nonFilteredFileExtension>cer</nonFilteredFileExtension><nonFilteredFileExtension>pem</nonFilteredFileExtension><nonFilteredFileExtension>pfx</nonFilteredFileExtension><nonFilteredFileExtension>jkx</nonFilteredFileExtension></nonFilteredFileExtensions></configuration></plugin>
这个插件的作用是在maven编译打包项目的时候忽略指定后缀的文件,秘钥如果不忽略就会被编译,编译后就会出问题;
GitHub地址:https://github.com/mingyang66/EmilyGateway
springboot2.4开启HTTPS功能报DerInputStream.getLength(): lengthTag=111, too big异常相关推荐
- java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big解决方法
1:报错如下 Exception in thread "main" java.io.IOException: DerInputStream.getLength(): lengthT ...
- nginx开启https功能
http:80 https:443 下边这种协议比http要安全,因为数据传输是经过加密的 当访问http://www.baidu.com的时候,访问的url会跳转到https://www.baidu ...
- 实现nginx的https 功能报错:
1.报错 1.1 看到这个报错都知道啥意思: 网上查询有说需要换证书的,但是这是我自己建的私有CA,重新创建几次也没有报错 [root@centos8 /apps/nginx]#nginx -t ng ...
- java getiotype_坑爹微信之读取PKCS12流时出现的java.io.IOException: DerInputStream.getLength...
背景 微信退款接口需要使用到证书,我参考微信的官方Demo进行,部分代码如下: char[] password = config.getMchID().toCharArray(); InputStre ...
- htpp-server开启https服务终端报错问题
htpp-server开启https服务 问题:powershell输入openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyou ...
- WordPress整站轻松开启HTTPS
近两年来HTTPS取代HTTP已经成为大势所趋.早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全.现在,Chrome浏览器已经开始执行这一标准了.从 Chr ...
- 使用acmesh免费开启https(详细概念介绍与操作步骤记录)
前言 记录一次使用acme.sh免费开启https的过程,前半部分列举一些用到的概念,后半部分记录具体操作步骤.文章已调整好线性阅读顺序,按顺序阅读即可.流程中涉及的概念会尽量进行讲解,以减少阅读此篇 ...
- nginx开启https配置
最近再做小程序项目上线官方强制要求使用https,这里记录一下nginx下https的部署使用:如果有钱的话可以购买证书这里使用的是免费的 什么是https参考:https://jingyan.bai ...
- licode pre-v7.3开启屏幕共享功能
由于工作需要,所以开始研究licode的共享屏幕功能,但在简单修改代码后,并没有成功开启屏幕共享功能.于是潜心Google+度娘,虽然最终结果只在firefox 69版本中开启了屏幕共享功能(chro ...
最新文章
- MWC2018:阿里云发布8款云计算AI产品,中国科技已领先世界一步
- java tomcat 时间不对解决办法
- SpringBoot整合异步任务实现发送邮件
- ARUBA与蓝海无线PORTAL对接配置
- Android DDMS如何使用?
- equipment download和CRM 的change history
- 学习笔记(08):Python网络编程并发编程-实现服务端可以对多个客户端提供服务
- js将中文转换成编码 java解析_JS实现的汉字与Unicode码相互转化功能分析
- 360 n6 linux内核版本,五年26个版本:Linux系统内核全程回顾
- sysvol共享没有出现的处理办法!
- Long-Short Memory Network(LSTM长短期记忆网络)
- Python写的一个文件生成器脚本
- 服务器驱动硬盘故障修复,如何修复崩溃的硬盘驱动器
- android极光推送问题,极光推送- 常见问题 - 极光文档
- 研发团队管理实践总结
- 人生的思考——温水中被煮熟的程序员
- Java 中的 Clone()
- 如何正确获得Android内外SD卡路径
- Echarts 柱状图渐变色设置
- 扫描格式的pdf文件怎样进行识别