解决tomcat6.0.33 配置SSL时报“No Certificate file specified or invalid file format”异常

微信图片.dat文件解密实战:用Python一键转PNG(附完整代码) 本文详细介绍了如何通过Python解密微信图片.dat文件并转换为PNG格式的完整教程。文章深入解析了微信.dat文件的异或加密原理,提供了自动检测密钥的Python脚本,并分享了批量解密和性能优化的实用技巧,帮助用户轻松恢复和整理微信聊天图片。 阅读详情

配置tomcat的SSL双向握手中,由于6.0.33版本中默认启用了APR(APR是通过JNI访问的可移植库,可以提高Tomcat的性能和伸缩性),所以采用传统的配置方式(如下)会报异常;

 

传统的SSL配置:

Xml代码  收藏代码
  1. < Connector   port = "443"   protocol = "HTTP/1.1"   SSLEnabled = "true"   
  2.            maxThreads = "150"   scheme = "https"   secure = "true"   
  3.            clientAuth = "true"   sslProtocol = "TLS"   
  4.            keystoreFile = "conf/keystore/test.jks"   keystorePass = "111111"   
  5.            truststoreFile = "conf/keystore/test.jks"     truststorePass = "111111"   

 

 

 

异常如下:

Java代码  收藏代码
  1. 2011 - 10 - 27   9 : 26 : 03  org.apache.coyote.http11.Http11AprProtocol init  
  2. 严重: Error initializing endpoint  
  3. java.lang.Exception: No Certificate file specified or invalid file format  
  4.     at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)  
  5.     at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:733 )  
  6.     at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107 )  
  7.     at org.apache.catalina.connector.Connector.initialize(Connector.java:1022 )  
  8.     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703 )  
  9.     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838 )  
  10.     at org.apache.catalina.startup.Catalina.load(Catalina.java:538 )  
  11.     at org.apache.catalina.startup.Catalina.load(Catalina.java:562 )  
  12.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  13.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 )  
  14.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25 )  
  15.     at java.lang.reflect.Method.invoke(Method.java:585 )  
  16.     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261 )  
  17.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413 )  
  18. 2011 - 10 - 27   9 : 26 : 03  org.apache.catalina.core.StandardService initialize  
  19. 严重: Failed to initialize connector [Connector[HTTP/1.1 - 443 ]]  
  20. LifecycleException:  Protocol handler initialization failed: java.lang.Exception: No Certificate file specified or invalid file format  
  21.     at org.apache.catalina.connector.Connector.initialize(Connector.java:1024 )  
  22.     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703 )  
  23.     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838 )  
  24.     at org.apache.catalina.startup.Catalina.load(Catalina.java:538 )  
  25.     at org.apache.catalina.startup.Catalina.load(Catalina.java:562 )  
  26.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  27.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 )  
  28.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25 )  
  29.     at java.lang.reflect.Method.invoke(Method.java:585 )  
  30.     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261 )  
  31.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413 )  

 解决办法是采用下面的配置:

Xml代码  收藏代码
  1. < Connector   port = "443"   protocol = "org.apache.coyote.http11.Http11Protocol"   SSLEnabled = "true"   
  2.            maxThreads = "150"   scheme = "https"   secure = "true"   
  3.            clientAuth = "true"   sslProtocol = "TLS"   
  4.            keystoreFile = "conf/keystore/testpsira.jks"   keystorePass = "111111"   
  5.            truststoreFile = "conf/keystore/testpsira.jks"     truststorePass = "111111"   

其实就是将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol",问题得以解决;

APR给Tomcat的性能提升起到很大作用,建议配置APR方式。

 

题外话:

如果辨别Tomcat是否采用APR:

启动Tomcat时,如果采用APR,日志中会有如下信息:

Python代码  收藏代码
  1. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  

 

如果没有采用APR,启动时则显示类似的信息:

Python代码  收藏代码
  1. 信息: The APR based Apache Tomcat Native library which allows optimal performance  in  production environments was  not  found on the java.library.path: ....后面省略  
ESP32 LVGL开发板例程使用记录:自制常用汉字字库(二) 1、将下载的文件移入工程文件中 ,路径为项目文件中 ”......\lib\lvgl\src\font“文件夹下。3、修改字库配置文件,文件名为lv_conf.h中的内容,向其中加入下面内容(位置可搜索注释块来找到地方)修改完成可以编译试试,看是否成功,如字库较大时编译出错,请使能:LV_FONT_FMT_TXT_LARGE。2、打开此文件,修改包含头文件的路径,不然会报错,修改方法可对照自己库中其他字库文件中的包含路径。导入完成后在VSCode工程中可以查看到此文件。上次说完了如何制作 字库.c 文件。 阅读详情

相关推荐

1.5元主控搞定高精度电流电压采集?STC8G1K08+INA180A3硬件设计全解析

本文详细解析了如何利用成本仅1.5元的STC8G1K08单片机与INA180A3电流检测放大器,构建一套高精度、低成本的电流电压采集系统。文章深入剖析了硬件设计精髓,包括利用MCU内部上拉电阻直驱数码管以节省成本、INA180A3的配置与计算,以及实现高频率采集并与上位机高速通信的软件策略,为嵌入式开发中的极致性价比设计提供了完整方案。

weixin_29166013的博客 600

mysql导入excel数据报错:invalid file format

问题:在mysql创建完表后,导入excel数据,excel数据和表字段是对应的,没有问题,但是导入向导》选择表后报错 解决:1、剪切excel字段,然后在原位置右键》粘贴为数值            2、打开excel,另存为xlsx文件,再尝试导入 原因:excel字段有其他规则导致mysql读取不到字段,或者其他原因...

Demis_demis的博客 1万+

OpenAI Codex 桌面端国内使用全坑解決指南(2026 Windows 实测)

本地文件报错:SQLite 初始化失败、启动闪退、卡加载页 → 本地缓存/数据库损坏,和网络无关网络地区报错→ 网络IP/地区被拦截,和本地软件文件无关Codex 桌面端的大部分报错,都不是软件故障,而是海外软件适配国内网络、国内模型协议不兼容导致的适配问题。不用盲目重装、换网络、改系统设置,只要区分「本地文件问题」和「网络地区问题」,搭配国内大模型 API 替代方案,就能完美解决所有痛点。(注:部分内容可能由 AI 生成)

ups_hxc的博客 1108

android apk应用系统集成编译错误问题

在系统源码中添加一个APK源码目录,并写了相应的android.mk文件,编译时出错如下: make: *** No rule to make target `out/target/common/obj/JAVA_LIBRARIES/liba71S_intermediates/javalib.jar', needed by `out/target/common/obj/APPS/My_Setti

Andy Blog 4218

Matlab中eig内置函数转为C语言

本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。 首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数: 3.在定义输入类型窗口中,需要添加输入数据来训练...

u011441044的博客 3516

【RK3588开发记录】超详细的RK3588修改debug串口波特率为115200

修改RK3588的debug串口为115200

Crazydrams的博客 4805

[ Android 编译 ] 如果不指定LOCAL_CERTIFICATE,默认使用哪个key进行签名

在未修改源码编译环境的情况下,系统源码中编译的应用,如果没有指定 LOCAL_CERTIFICATE: 1、在 user 模式下就是用 build/target/product/security/releasekey.x509.pem 进行应用签名。 2、在 eng / userdebug 模式下用 build/target/product/security/testkey.x509.pem 进行应用签名。

a572423926的博客 2926

车载以太网测试技术解析

在智能汽车与HiL测试领域,高效解析与模拟车载网络通信是开发验证的关键。ZD-Converter 2000以媒体/介质转换器、嗅探器、拦截器、仿真器四合一的颠覆性设计,成为工程师应对复杂车载以太网测试的瑞士军刀。它支持双路车载/标准以太网智能转换、实时通信嗅探、硬件级数据拦截及ECU通信模拟,更通过串口命令实现全参数远程配置,赋能自动化测试流程。本文将深度解析其核心功能与实战应用场景。

Triv2025的博客 1143

ERDAS IMAGINE 2022安装报错Invalid file format.解决办法

ERDAS2022报错Invalid file format.解决办法

cubesir的专栏 3592

手把手教你用分立元件搭建自举电路:解决高端MOS驱动难题

本文详细介绍了如何用分立元件搭建自举电路,解决高端MOS驱动中的栅源极电压不足问题。通过面包板实验,逐步讲解二极管、电容等关键元件的选型与电路搭建,提供波形调试和常见问题排查方法,帮助工程师提升开关电源和电机驱动等应用的效率与可靠性。

weixin_30555125的博客 153

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3396

ubuntu 16.04 编译android sdk 报错

报错如下: scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h CHK scrip...

1119

15、z/OS 优化配置与迁移实践

本文详细探讨了z/OS环境的优化配置与迁移实践,涵盖DASD存储库管理、用户目录更新、环境更新意义以及不同场景下的迁移案例。通过单笔记本系统和服务器级机器的实例,展示了迁移流程和关键要点,包括DASD文件创建、设备映射更新、系统重启初始化以及数据备份等步骤。文章还总结了迁移过程中的注意事项,并展望了未来z/OS优化的发展趋势,为z/OS系统的稳定运行和高效管理提供了实用指导。

zzz56的博客 129

tomcat配置https启动出现"No Certificate file specified or invalid file format"异常

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="D:/Tomcat6/server.keystore"

hfsu0419的专栏 8974

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

tomcat SSL配置异常-“No Certificate file specified or invalid file format”

参考自: http://wmljava.iteye.com/blog/1218722 http://www.cnblogs.com/GYoungBean/archive/2013/03/20/2971045.html

henryzhang2009的专栏 3828

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Cas使用问题汇总

1、使用Cas必须使用SSL协议,因此需要使用到证书,并且使用Tomcat做服务器时需要在conf/server.xml中放开8443端口的connector节点。 即: [code="java"][/code] 配置证书路径和密码后其中一台机器就可以正常启动tomcat(版本为6.0.14)了,但是另外一台tomcat(版本为6.0.37)报“No Certificate file sp...

chengbowen00的专栏 437

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android 5.1编译问题

1, 如何打开一种语言以及如何设置开机默认语言 ?            一、如何打开语言支持计划中的语言?                AndroidKK JB              请打开文件:mediatek/config/${Project}/ProjectConfig.mk              找到宏MTK_PRODUCT_LOCALES,把所需的语言代码添加进去,

美丽心情 3128

Android系统签名简介

apk的签名,简单说开发者可以通过签名 对应用进行标识和更新。包名在一个设备上是唯一的,这样可以避免被相同包名应用随意覆盖安装。这是一个非常重要的安全功能。系统中的签名文件,也是对系统中应用进行签名,编译应用是可以指定签名类型。 下面介绍的是Android系统中的签名相关内容。 Android系统中的主要签名文件 media.pk8,media.x509.pem;platform...

sunyugg的博客 4421

Android13 App 预装详解

* Android13系统App权限配置 * Android13系统签名 * Android13系统开发实用工具

老皮的博客 7302

navicate 导入向导选择excel提示“invalid file format”

刚开始百度了下以为文件格式有问题,重新加了一个工作簿,把原来数据复制粘贴到新的工作簿里,接着导入向导,选择excel,还是不行,后来把excel另存为了下,后缀由xls变为xlsx,后,导入向导选择后缀为xlsx的excel,后导入成功了。原因不得而知,工作紧任务重,先记录下,后面有时间再研究。

Zhao_Yanqing的博客 2573
上一篇: serlvet获取全局及局部参数
下一篇: 本地源码关联远程服务器调试代码
java_min
博客等级 码龄18年 61粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值