java.security.cert.CertificateException:证书不符合算法约束

2023-12-26

我有一个地图应用程序可以添加地理信息系统 9.3+给定 URL 的底图。我想要添加的 URL 之一来自客户的 URL,并且是安全的。我的地图应用程序之前使用 Java 6,并且能够毫无问题地添加安全 URL。我现在升级到 Java 7 并得到了

"java.security.cert.CertificateException: Certificates does not conform to algorithm constraints"

例外。起初,我相信情况确实如此,因为在 Java 7 中,默认情况下,MD2签名 SSL 证书的算法已禁用。您可以在 java.security 文件中看到这一点:

"jdk.certpath.disabledAlgorithms=MD2"

但是当我检查Certification Signature Algorithm该网址的内容是SHA-1。更奇怪的是如果我注释掉"jdk.certpath.disabledAlgorithms=MD2"线在java.security文件,URL 将毫无问题地工作。是MD2在 SSL 过程中在其他地方使用过?我在这里错过了什么吗?


背景

MD2 被广泛认为是不安全的,因此在 JDK 6u17 版本的 Java 中被禁用(请参阅发行说明http://www.oracle.com/technetwork/java/javase/6u17-141447.html http://www.oracle.com/technetwork/java/javase/6u17-141447.html,“在证书链验证中禁用 MD2”)以及 JDK 7,根据您在中指出的配置java.security.

Verisign 使用 3 类根证书md2WithRSAEncryption签名算法(串行70:ba:e4:1d:10:d9:29:34:b6:38:ca:7b:03:cc:ba:bf),但已弃用它,并将其替换为具有相同密钥和名称但使用算法签名的另一个证书sha1WithRSAEncryption。然而,一些服务器在 SSL 握手期间仍然发送旧的 MD2 签名证书(讽刺的是,我在 Verisign 运行的服务器上遇到了这个问题!)。

您可以通过以下方式验证情况是否如此获取证书链 https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server从服务器并检查它:

openssl s_client -showcerts -connect <server>:<port>

最新版本的 JDK(例如 6u21 和 7 的所有发布版本)应该resolve http://bugs.java.com/view_bug.do?bug_id=6948803通过自动删除与可信锚点具有相同颁发者和公钥的证书(默认在 cacerts 中)来解决此问题。

如果您在使用较新的 JDK 时仍然遇到此问题

检查您是否有自定义信任管理器来实现旧版本X509TrustManager界面。 JDK 7+ 应该与此接口兼容,但是根据我在信任管理器实现时的调查X509TrustManager而不是较新的X509ExtendedTrustManager (docs http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#X509ExtendedTrustManager),JDK使用自己的包装器(AbstractTrustManagerWrapper)并以某种方式绕过此问题的内部修复。

解决办法是:

  1. 使用默认的信任管理器,或者

  2. 修改您的自定义信任管理器以扩展X509ExtendedTrustManager直接(一个简单的改变)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.security.cert.CertificateException:证书不符合算法约束 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch

随机推荐

  • 单元测试/与 Simulink/Stateflow 持续集成

    如何在 Simulink 或者最好是 Stateflow 中执行单元测试 我是敏捷软件方法的粉丝 包括测试驱动开发 我负责安全关键控制软件的开发 我们使用 Matlab Simulink Stateflow 来开发它 选择此工具集是因为与工
  • Ckeditor:使用 Firefox 内置的拼写检查器

    我觉得这里有点进退两难 我想使用 Firefox 的内置拼写检查功能 而不禁用 Ckeditor 的上下文菜单 因为这会导致无法使用表格 有没有一种方法可以两全其美 您可以尝试设置禁用本机拼写检查器 http docs cksource c
  • 更改 tr 背景颜色

    我有这样的事情 tr style background color Yellow 当我单击一行时 我想更改其背景颜色 我这样做 function SetBackgroundColor rowId rowId css background c
  • 错误 LNK1104:无法打开文件“libboost_serialization-vc110-mt-gd-1_53.lib”

    我使用 Boost 序列化创建一个简单的 XML 文件 但是在调试时出现此错误 错误 LNK1104 无法打开文件 libboost serialization vc110 mt gd 1 53 lib 我已尝试按照以下答案解决我的问题这个
  • 如何使用 django 发送包含动态内容的 html 电子邮件?

    谁能帮我发送带有动态内容的 html 电子邮件 一种方法是将整个 html 代码复制到一个变量中 并在 Django 视图中填充其中的动态代码 但这似乎不是一个好主意 因为它是一个非常大的 html 文件 我将不胜感激任何建议 Thanks
  • 逗号分隔具有相同行数的值

    数据库结构 items id name users id username 用户项目 id user id item id 我目前有一个count on user items显示拥有最多项目的用户 john 13 bill 9 lily 9
  • 使用 OpenCV 检查图像的相似性

    OpenCV 是否支持比较两个图像 返回一些值 可能是百分比 来指示这些图像的相似程度 例如 如果相同的图像被传递两次 则返回 100 如果图像完全不同 则返回 0 我已经在 StackOverflow 上阅读了很多类似的主题 我也做了一些
  • 如何在 Laravel 中进行简单的重定向?

    我在 Laravel 中有一个函数 最后我想重定向到另一个函数 我如何在 Laravel 中做到这一点 我尝试过类似的东西 return redirect gt route listofclubs 这不起作用 listofclubs 的路线
  • 如何在 Bootstrap 中垂直居中容器?

    我正在寻找一种垂直居中的方法container里面的divjumbotron并将其设置在页面中间 The jumbotron必须适应屏幕的整个高度和宽度 这 containerdiv 的宽度为1025px并且应该位于页面的中间 垂直居中 我
  • 在 TensorFlow 中,如何使用 python 从张量中获取非零值及其索引?

    我想做这样的事情 假设我们有一个张量 A A 1 0 0 4 我想从中获取非零值及其索引 Nonzero values 1 4 Nonzero indices 0 0 1 1 Numpy 中也有类似的操作 np flatnonzero A
  • Google 跟踪代码管理器:事件跟踪不起作用

    我尝试使用标签管理器跟踪我网站上所有邮件链接的点击次数 但它根本不起作用 使用 firebug 查看网络传输 我可以看到没有任何内容提交给 Google 当然 我的 Analytics 界面中也没有出现任何内容 我已使用 jQuery 将推
  • C 动作和变量

    为什么当我使用 char paraula 15 int longparaula 0 copia paraula paraula longparaula 它说longparaula 0 paraula 没问题 并且包含我输入的字符的值 但 l
  • 将大的 2^63 十进制转换为二进制

    我需要将大十进制转换为二进制 我该怎么做 有问题的十进制是这个 3324679375210329505 怎么样 String binary Long toString 3324679375210329505L 2
  • 获取有关自动变量的帮助不起作用

    我正在研究 PowerShell 建议致电网站和书籍Get Help about Automatic Variables例如 获取返回的自动变量列表 我尝试打电话Get Help使用以下参数 但我总是得到返回的 cmdlet 列表 abou
  • PyQt 事件发出两次

    我正在尝试实现 拖放 项目QListWidget to QGraphicsView 我继承了自己的班级MooView from QGraphicsView并封装dragMove dragEnter and drop事件 但在测试时 我注意到
  • 使用“ec2-user”登录,而不是使用 aws 中的用户数据 root 登录

    我有一个基于 RHEL 6 4 64 位 AMI 的 Amazon EC2 实例 写完一些shell脚本后 我用它创建了自己的 AMI 映像 我正在编写用户数据部分 它将删除 home ec2 user sudo rm rf home ec
  • OpenSSL 在 PKCS12 导出期间挂起,并显示“将‘屏幕’加载到随机状态”

    我正在使用 OpenSSL 不是 makecert 生成自签名 SSL 证书 以在 IIS 中使用 openssl req x509 newkey rsa 2048 keyout key pem out cert pem days 365
  • 创建和使用 Laravel 4 命令

    编辑 找出我出错的地方并将答案放在最后 我正在尝试创建一个 Laravel 命令 我可以看到它与 Laravel 3 中的 任务 相比发生了很大的变化 但是我似乎无法让它运行 这些是我已采取的步骤 php artisan 命令 make 导
  • 禁用远程调试时应用程序在启动时崩溃

    我正在尝试在我的手机 iPhone 上安装我的反应本机应用程序 它安装正常 但在启动时崩溃并显示此错误消息 undefined is not an object evaluating navigator userAgent indexOf
  • java.security.cert.CertificateException:证书不符合算法约束

    我有一个地图应用程序可以添加地理信息系统 9 3 给定 URL 的底图 我想要添加的 URL 之一来自客户的 URL 并且是安全的 我的地图应用程序之前使用 Java 6 并且能够毫无问题地添加安全 URL 我现在升级到 Java 7 并得