Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要帮助调试tomcat中的SSL握手

需要帮助调试tomcat中的SSL握手
EN

Stack Overflow用户
提问于 2011-12-08 10:56:42
回答 2查看 19.3K关注 0票数 4

我有个很奇怪的问题,想找些小贴士。我有一个由客户端发送的证书,我需要安装,这样我就可以访问HTTPS can服务。已经在windows和Linux操作系统中安装了证书。使用keytool命令

代码语言:javascript
运行
AI代码解释
复制
keytool -import -alias ca -file somecert.cer -keystore cacerts –storepass changeit

当我在windows中部署应用程序时,我可以与HTTPS web服务器进行通信。然而,Linux给了我一个错误:

导致: sun.security.provider.certpath.SunCertPathBuilderException:无法在java.security.cert.CertPathBuilder.build(CertPathBuilder.java:194) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:216)的sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:236)找到被请求的目标的有效证书路径

这意味着它找不到证书。证书位于java安全仙人掌上。我使用了keytool -list命令,它就在那里。

我不知道为什么它在windows而不是linux中工作。我已经尝试过在我的servlet中设置参数

代码语言:javascript
运行
AI代码解释
复制
System.setProperty("javax.net.debug", "all"); 
System.setProperty("javax.net.ssl.trustStore", "/usr/java/jdk1.5.0_14/jre/lib/security/cacerts"); 
System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); 

还是不起作用。

我的问题是:

1.有人知道为什么这不管用,我什么都累了吗?

2.如何为tomcat.Ss设置System.setProperty("javax.net.debug", "all")进行SSL调试?由于某些原因,我在Catalina.out中没有看到任何SSL调试信息。我是否需要更改任何应该看到的else.What调试信息。

任何帮助都会大大增加我的想法。

EN

回答 2

Stack Overflow用户

发布于 2015-03-19 12:08:02

要解决这个问题,您可以尝试以下方法

下载SSLPoke.java

SSLPoke.java

汇编:

代码语言:javascript
运行
AI代码解释
复制
javac SSLPoke.java 

编译代码后,将SSLPoke调用为

代码语言:javascript
运行
AI代码解释
复制
java -Djavax.net.debug=all SSLPoke [your https host] 443

在输出中,您将看到java正在寻找仙人掌的位置。

一旦您知道确切的位置,使用keytool将您的文件导入到仙人掌。

代码语言:javascript
运行
AI代码解释
复制
keytool -import -alias [your https host] -keystore [the location returned]/cacerts -file [your.crt]

仅此而已,重新启动tomcat,它必须工作正常。

有时,当同一台Linux机器上有大量java版本时,甚至向调试返回的仙人掌中添加your.crt都不起作用,如果是这种情况,那么将your.crt添加到Linux计算机上的所有仙人掌中,您可以通过以下方法找到它们:

代码语言:javascript
运行
AI代码解释
复制
locate cacert

一旦Linux机器返回仙人掌的所有位置,例如:

代码语言:javascript
运行
AI代码解释
复制
/home/xuser/NetBeansProjects/porjectx/conf/cacerts
/opt/otherlocation/j2sdkee1.3.1/lib/security/cacerts.jks
/opt/icedtea-bin-6.1.12.7/jre/lib/security/cacerts
/opt/icedtea-bin-6.1.13.5/jre/lib/security/cacerts
/opt/icedtea-bin-7.2.4.1/jre/lib/security/cacerts
/opt/oracle-jdk-bin-1.7.0.76/jre/lib/security/cacerts
/opt/sun-j2ee-1.3.1/lib/security/cacerts.jks

使用keytool将your.crt添加到所有它们中,然后重新启动tomcat。

如果您没有文件your.crt,您可以使用命令获得它

openssl s_client -connect [your https host]:443 < /dev/null

然后复印-开始证书

我希望这对你有帮助

票数 6
EN

Stack Overflow用户

发布于 2016-06-20 10:34:38

您是否检查了证书本身,以确定证书路径中是否缺少根证书?

另外,请记住,如果您指向Java的内置仙人掌,并且要更新Java,您的证书将被覆盖。为此,我通常使用备用密钥存储位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8436138

复制
相关文章
Networks 09 - SSL握手
SSL握手 过程 客户端给出协议版本号, 客户端生成的随机数(client random), 以及客户端支持的加密方式. 服务器确认双方使用的加密方法, 并给出数字证书, 以及一个服务器生成的随机
Reck Zhang
2021/08/11
2620
Networks 09 - SSL握手
SSL协议概述和握手过程
SSL协议的机密性主要依靠的是对称加密体质,在通信过程中,使用对称密码进行加密解密保证信息的安全性。
全栈程序员站长
2022/09/01
2.4K0
IntelliJ 中如何配置 Tomcat 调试
在弹出的添加页面中选择添加 Tomcat,你可以选择添加本地的,你也可以选择添加远程的。
HoneyMoose
2023/08/28
3530
IntelliJ 中如何配置 Tomcat 调试
【技术文】SSL握手中的几个密码
SSL的加密为了平衡安全和效率,做了很多工作,为了SSL的加密过程足够安全,SSL引入了很多密码:
运维部落
2020/08/17
8900
【技术文】SSL握手中的几个密码
Wireshark抓包分析SSL握手的过程
刚才用图和文字描述讲解了SSL协议的交互过程HTTPS协议--通过SSL协议实现安全保障的过程和原理。
清菡
2022/06/21
3.5K0
Wireshark抓包分析SSL握手的过程
Nginx+SSL+Tomcat配置SSL证书(Nginx+SSL做前端,后端使用tomcat)
下面解决方案是浏览器和 Nginx 之间使用 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 使用标准 HTTP 连接。
BUG弄潮儿
2022/06/30
1.9K0
Nginx+SSL+Tomcat配置SSL证书(Nginx+SSL做前端,后端使用tomcat)
ScintillaNET 需要帮助
Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示,代码自动完成以及代码提示等。而且在左边的空白处(margin),可以显示调试代码中非常有用的显示断点以及显示当前运行行等功能。而且,自定义风格的功能比其他大部分编辑器控件都开放,它允许用户自定
张善友
2018/01/22
1.6K0
修改openssl源码控制ssl握手过程
上篇文章 结尾说道使用openssl s_client命令无控制握手过程,本篇将使用修改源码方式控制ssl握手过程
angelo
2019/07/22
5.7K0
Tomcat远程调试
本文环境:tomcat:apache-tomcat-8.5.6,eclipse:eclipse-jee-oxygen
会说话的丶猫
2020/08/06
1K0
Tomcat远程调试
tomcat 远程调试
编辑 tomcat/bin/catalina.sh 把 localhost 改 0.0.0.0,否则 tomcat远程调试只能本机访问
林万程
2020/07/16
1.3K0
Tomcat远程调试
命令行添加下面参数: -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
birdskyws
2018/12/24
1.3K0
Tomcat开启SSL 8443端口的方法
TOMCAT_HOME:/usr/local/tomcat7,安装方法参考:windows和linux 下将tomcat注册为服务
云知识Online
2018/05/03
4.4K0
Tomcat开启SSL 8443端口的方法
spring boot启用tomcat ssl
首先要生成一个keystore证书。参考:Tomcat创建HTTPS访问,java访问https,ssl证书生成:cer&jks文件生成摘录,spring-boot 这里复现一下完整过程: 安装好ja
Ryan-Miao
2018/03/13
1.7K0
Tomcat配置多SSL证书
前一阵用子域名解析了一个服务,发现开启https后,浏览器报错证书无效,于是我专门为子域名申请了证书,我的需求是通过不同的域名访问同一个tomcat,经过一番折腾后,终于实现了这个需求。
神奇的程序员
2022/04/10
1.8K0
Tomcat配置多SSL证书
Tomcat 安装SSL证书 原
登录GetSSL会员中心, 点击左侧 【 SSL证书管理】, 点击 【查看订单】 ,【下载SSL证书】。选择Tomcat格式, 输入密码 并点击下载。
拓荒者
2019/03/11
3.4K0
Tomcat 安装SSL证书
                                                                            原
断言assert()与调试帮助
对expr求值,如果expr为假,则输出信息并终止程序,反之则什么也不做。 用来检查”不会发生”的条件。 assert的行为依赖与NDEBUG的预处理变量的状态,如果定义了这个变量,则assert什么也不做。如果定义了NDEBUG,编译器会认为是非DEBUG模式(like release模式)
Enterprise_
2019/02/20
6650
国密SSL通信的调试技巧
这篇文章来聊一聊国密SSL通信的几个调试技巧。网络通信开发需要开发者具有细致和耐心,对照协议,逐个步骤分析数据,整个过程有些枯燥。特别是网络数据包,差一个字节都可能导致解析出错,只能逐个字节比对。这个时候,一些调试经验和技巧就比较重要了。
云水木石
2020/05/15
2.8K0
国密SSL通信的调试技巧
深入调试tomcat源码
这篇文章写给那些像我想研究tomcat源码的朋友,下面直接进入正题:
johnhuster的分享
2022/03/29
7640
深入调试tomcat源码
tomcat远程调试javaweb
  当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置。
用户2038589
2018/09/06
1.7K0
tomcat远程调试javaweb
【Tomcat10】:掌握编译、调试 Tomcat 的技能嘛?
注意1:如果你遇到报错“ Failed to parse date string ...”
WEBJ2EE
2021/09/24
1K0
【Tomcat10】:掌握编译、调试 Tomcat 的技能嘛?

相似问题

如何调试Azure SSL握手?

12

如何使用cURL调试SSL握手?

71

Spring boot 2 tomcat ssl握手缓存

10

Java和Tomcat在webservice中的SSL握手问题

46

需要帮助调试Tomcat 7应用程序错误

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档