在Java cacerts中导入根证书和中间证书的正确方法

2023-12-13

我公司有自己的ROOT证书。使用他们签署的这个证书intermediate证书。

然后我们发布了CSRserver证书并签署intermediate证书。

正确的导入方式是什么ROOT证书和intermediate在Java cacerts文件中,以便能够与具有的服务器建立SSL连接server证书由intermediate?

我使用 OpenSSL 来测试服务器上的证书链:

openssl s_client -showcerts -connect host:443

CONNECTED(00000003)
depth=0 C = COUNTRYCODE, ST = myCountry, O = myOrganization, CN = myServer, emailAddress = myMail
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = COUNTRYCODE, ST = myCountry, O = myOrganization, CN = myServer, emailAddress = myMail
verify error:num=27:certificate not trusted
verify return:1
depth=0 C = COUNTRYCODE, ST = myCountry, O = myOrganization, CN = myServer, emailAddress = myMail
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/C=COUNTRYCODE/ST=myCountry/O=myOrganization/CN=myServer/emailAddress=myMail
   i:/CN=INTERMEDIATECERT
-----BEGIN CERTIFICATE-----
MIIFr...
-----END CERTIFICATE-----
---
Server certificate
subject=/C=COUNTRYCODE/ST=myCountry/O=myOrganization/CN=myServer/emailAddress=myMail
issuer=/CN=INTERMEDIATECERT
---
No client certificate CA names sent
---
SSL handshake has read 1601 bytes and written 589 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA

您只需导入信任库中的根证书即可。

 keytool -import -trustcacerts -keystore path/to/cacerts -storepass changeit  -alias aliasName -file path/to/certificate.cer

SSL 服务器在握手期间应提供证书和中间体。您客户端的 TrustManager 将验证证书链,直到找到根

注意:建议使用您自己的信任库,而不是修改cacerts

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

在Java cacerts中导入根证书和中间证书的正确方法 的相关文章

随机推荐

  • 当我想从steam市场获取json时,jquery json错误

    我在向 Steam 发送 ajax 请求时遇到问题 我想从蒸汽市场获得价格 function jPrice httpToJson getJSON httpToJson function data return data median pri
  • 如何将 DLL 中的表单嵌入到 Inno Setup 向导页面中?

    我在 Delphi DLL 中构建了一些 VCL 表单 这些表单在 Inno Setup 安装期间显示 然而 如果我可以将这些表单嵌入到 Inno Setup 向导中 那就会更加简洁 我该怎么做呢 对您来说最简单的方法是创建一个导出函数 它
  • 单队列:多个消费者并发消息处理

    我是jms新手 目标是在异步侦听器的 onMessage 方法中同时处理来自队列的消息 方法是将侦听器实例附加到多个消费者 每个消费者使用自己的会话并在单独的线程中运行 这样消息就会传递给不同的消费者并发处理 1 是否可以通过创建多个消费者
  • 在 R Shiny 中使用 renderText() 输出多行文本

    我想使用一个输出多行文本renderText 命令 然而 这似乎不可能 例如 从闪亮教程我们已经截断了代码server R shinyServer function input output output text1 lt renderTe
  • 什么是 JavaScript 数组?

    我试图了解 JavaScript 数组是什么 因为传统编程语言将数组定义为可以使用偏移量寻址的连续存储区域 现在 一个普通的 JavaScript 对象可以被寻址为 myObj myProperty my Value or myObj my
  • React:如何从子组件渲染父组件?

    我的任务是为客户构建一个项目 该项目需要一个父组件包装三个子组件 具体来说 父组件按照以下方式渲染子组件 父级 顶部 中间 底部 PARENT 组件代表一组项目中的一个 在顶部组件中 有一个菜单按钮 显示组中所有项目的列表 其目的是 如果用
  • 在循环中使用 Promises 和 fs.readFile

    我试图理解为什么下面的承诺设置不起作用 注意 我已经使用 async map 解决了这个问题 但我想了解为什么我的以下尝试不起作用 正确的行为应该是 bFunc 应根据需要运行多次以读取所有图像文件 下面的 bFunc 运行两次 然后 cF
  • 计算不带小数的平均值

    我希望我能弄清楚这一点 我需要生成一个表 其平均值称为 AVG AMT 整数 并且没有小数 它可以舍入或截断 对于这张桌子来说 这确实不重要 这是我试图写的 SELECT TC Code AVG ALW AMT as int 8 0 AS
  • 如何在我不想编辑的第 3 方代码中禁用 gcc 发出的未使用变量警告?

    我想知道您将什么开关传递给 gcc 编译器来关闭未使用的变量警告 我在 Windows 上的 boost 中遇到错误 并且我不想触及 boost 代码 C boost 1 52 0 boost system error code hpp A
  • Angular JS 指令 - 模板、编译还是链接?

    我想创建一个 Angular JS 指令来检查字符串的长度 如果字符串太长 无法使用过滤器缩短它 并在鼠标悬停时显示 Angular UI 弹出窗口 我应该在指令中的哪个位置放置功能以使其正常工作 链接 模板或编译 风景 div proje
  • 如何暂停多处理进程?

    我希望用户能够在启动后的任何给定时间暂停多处理的执行 如何实现 我的代码是 coding utf 8 from PySide import QtCore QtGui from Ui MainWindow import Ui MainWind
  • 无法将 1 和 0 的字符串写入二进制文件,C++

    我有一个函数 它接收一个指向带有要打开的文件名的字符串的指针 并用 1 和 0 进行编码 编码线包含类似的东西010100110101110101010011写入二进制文件后 我有完全相同的 你会推荐吗 谢谢 void codeFile c
  • docker React 无法在本地主机上运行

    我正在尝试使用 docker 运行我的 React 应用程序 当我运行容器时 一切看起来都很好 但我无法在本地主机 或 127 0 0 1 上访问它 这是我的配置 Dockerfile FROM node carbon RUN mkdir
  • Django 中的 AbstractUser 与 AbstractBaseUser?

    指某东西的用途AbstractUser and AbstractBaseUser看起来很相似 from django contrib auth models import AbstractUser AbstractBaseUser 两者有什
  • 如何使ForeignKey('self')禁令的管理员引用其自身?

    我有一个模型 其自身带有外键 例如 class Folder models Model name models CharField parent folder models ForeignKey self null True blank T
  • 运行单个 Maven 插件执行?

    我以为我是一个经验丰富的 Maven 用户 但我对如何做到这一点有一个心理障碍 我已经能够使用 Maven sql 插件通过我定义并绑定到的插件执行在数据库中删除 创建和安装模式pre integration test phase 然而 现
  • 在公式栏中隐藏公式

    当我在 Visual Basic 中使用下面所示的代码时 HYPERLINK公式中出现的部分bar 在工作表中 我只想 TextHere 显示在公式栏中 我可以添加哪些额外代码 我尝试通过在保护选项卡中更改其属性来隐藏它 但它不允许我再编辑
  • 以编程方式 Fling ListView Android

    有没有一种方法可以以编程方式在列表视图上执行 Fling 我知道有猴子可以做所有这些事情 但这需要计算机与 adb 等连接 我想在任何手机上使用我的应用程序来完成此操作 而不需要猴子 谢谢 费萨尔 有两种方法可以 平滑滚动 而不是跳转到某个
  • 多个强制参数集

    我正在开发一个包含多个参数集的函数 其中一些是强制性的 一些是可选的 这只是一个例子 但想象一下以下情况 从 AD 组中添加或删除用户或计算机的功能 由于某种原因 您需要区分用户和计算机 请记住这只是一个例子 在这种情况下 添加 删除单个内
  • 在Java cacerts中导入根证书和中间证书的正确方法

    我公司有自己的ROOT证书 使用他们签署的这个证书intermediate证书 然后我们发布了CSRserver证书并签署intermediate证书 正确的导入方式是什么ROOT证书和intermediate在Java cacerts文件