Glassfish 4.1.1 - 使用我自己的证书的 DAS 抛出“j_security_check”错误

2024-03-26

我有一个 glassfish 4.1.1 实例正在运行,并将我自己的证书添加到我的应用程序中,直到那时一切都正常..

但是,当我尝试访问 glassfish 管理员(DAS)时,连接不受信任,并且添加例外的按钮消失了。

然后我发现了一些有趣的链接讨论这个问题,例如:

  • 配置 Glassfish SSL 证书昵称的正确方法? https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname

我试过这个:

asadmin enable-secure-admin --adminalias=myNewAlias --instancealias myNewAlias
asadmin restart-domain domain1

这样,不受信任的连接消息就会消失并且证书会正确显示,但是当我尝试身份验证时会抛出错误:

  • https://myUrl:4848/j_security_check https://myUrl:4848/j_security_check

根据答案的评论link https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname,它与那个人的情况非常相似,但我无法解决它:

  • 从 ~.gfclient/truststore 中删除 s1as 证书
  • 使用我的新别名证书重新启动域

如何正确更改 s1as 证书?为了我的 DAS 工作......

我正在使用 Ubuntu 14 和 java-1.8.0-openjdk-amd64。

Step 1: enter image description here

Step 2: enter image description here

服务器日志显示以下几行:

[2016-10-18T10:38:12.565+0200] [glassfish 4.1] [严重] [] [org.glassfish.admingui] [tid: _ThreadID=51 _ThreadName=admin-listener(2)] [timeMillis: 1476779892565] [levelValue: 1000] [[ javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径; javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径;休息请求: 终点=https://localhost:4848/management/domain/anonymous-user-enabled https://localhost:4848/management/domain/anonymous-user-enabledattrs={} 方法=GET]]


我终于解决了,为什么会这样?使用@Mike的解释:

这是因为同时存在密钥库和信任库 GlassFish 和管理控制台有效地使用了 2 路 SSL 初始登录的身份验证。如果你改变 s1as 证书,您还需要更改 glassfish-instance 证书

就我而言,我尝试使用自己的证书,但没有正确删除 cacerts.jks 和 keystore.jks 文件上最旧的证书。

我运行下面的代码时没有首先从文件中删除 s1as 和 glassfish 实例,这是我的错误步骤......

asadmin enable-secure-admin --adminalias=myNewAlias --instancealias myNewAlias

要使用您自己的证书运行 Glassfish 4.1.1 上的域管理服务器 (DAS),您必须执行以下步骤:

1)将自己的证书插入cacerts.jks和keystore.jks文件中:

就我而言,我使用证书 pkcs12:

keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore keystore.jks -srckeystore myOwnCert.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias myOwnAlias

keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore cacerts.jks -srckeystore myOwnCert.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias myOwnAlias

如果您有另一种证书,您必须搜索如何在这两个文件中插入您的证书类型:

$GLASSFISH_HOME/domains/domain1/config/cacerts.jks - 信任库 - 持有所有公钥 $GLASSFISH_HOME/domains/domain1/config/keystore.jks - 密钥库 - 保存所有私钥

参考:

会话6.首次启动前的安全配置:https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu

http://peter-butkovic.blogspot.com.es/2013/02/glassfish-default-keystore-and.html http://peter-butkovic.blogspot.com.es/2013/02/glassfish-default-keystore-and.html

https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html?jn9ed3e997=3 https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html?jn9ed3e997=3

https://glassfish.java.net/docs/4.0/security-guide.pdf https://glassfish.java.net/docs/4.0/security-guide.pdf

2)删除最旧的自签名证书:

默认情况下,当您运行命令enabled-secure-admin时,分配给该实例的证书是s1as公众是glassfish-实例,正如 @Mike 在另一篇文章中所解释的堆栈溢出问题 https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname即使您强制使用另一个证书运行,证书仍然保留。使用以下命令删除两者:

#Restart your domain without secure-admin
$GLASSFISH_HOME/bin/asadmin disable-secure-admin


#Go to your domain config folder to remove the certificates:
cd $GLASSFISH_HOME/domains/domain1/config/
keytool -delete -alias s1as -keystore keystore.jks -storepass changeit
keytool -delete -alias glassfish-instance -keystore keystore.jks -storepass changeit
keytool -delete -alias glassfish-instance -keystore cacerts.jks -storepass changeit
keytool -delete -alias s1as -keystore cacerts.jks -storepass changeit

参考:

谢谢@迈克:配置 Glassfish SSL 证书昵称的正确方法? https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname

https://glassfish.java.net/docs/4.0/security-guide.pdf https://glassfish.java.net/docs/4.0/security-guide.pdf(第 80 页)

3) 使用第一步中设置的您自己的别名重新启动 security-admin

$GLASSFISH_HOME/bin/asadmin enable-secure-admin --adminalias=myOwnAlias --instancealias myOwnAlias

$GLASSFISH_HOME/bin/asadmin restart-domain

理论上,已经完成了,您将能够使用自己的证书访问 DAS...;)

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

Glassfish 4.1.1 - 使用我自己的证书的 DAS 抛出“j_security_check”错误 的相关文章

  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 在 java 类和 android 活动之间传输时音频不清晰

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

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

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 具有不同参数的 C++ 成员函数指针 - 还是这很糟糕?

    尽管我担心你会告诉我这个话题已经被讨论过好几次了 但我还是敢问 因为我无法生成解决方案 也许我只是在寻找错误的东西 假设我有一个从某些外部函数接收 模式 的函数 根据模式的不同 函数会调用同一对象的不同成员函数 对于没有任何参数的成员函数
  • 如何用相邻值替换数据框中的 NA(缺失值)

    862 2006 05 19 6 241603 5 774208 863 2006 05 20 NA NA 864 2006 05 21 NA NA 865 2006 05 22 6 383929 5 906426 866 2006 05
  • 如何从 SonarQube 提取或导出规则

    如果我能获得以下情况的帮助 请感激 我的问题是确定如何在 SonarQube 4 5 7 上提取 导出所有 java 规则 我尝试了以下两个 API 调用 但收到 您正在查找的页面不存在 我的 sonarqube 版本显示了 781 个 j
  • 如何从 Carrierwave Uploader 对象引用父模型

    我想在通过 Carrierwave 完成文件上传后运行一些方法 Carrierwave包含几种回调方法详解here https github com jnicklas carrierwave wiki How to 3a use callb
  • Google Chrome 中的 DOM 过载问题

    我在 Google Chrome 中使用大量隐藏项目时遇到一些问题 最近 我发布了一个问题 https stackoverflow com questions 56329780 inexplicit task in chrome perfo
  • 毛伊岛内容页面视图中的视图模型未被识别

    我试图理解毛伊岛的服务 但注入并没有在视图中重新认识它 namespace FoodOrder ViewModels public class MenusViewModel IMenuServiceInterface menuService
  • 由于内存压力而终止应用程序

    我有一个应用程序可以在连拍模式下拍摄图像 但是一旦拍摄图像并即将出现预览时 它就会崩溃并且错误显示 由于内存压力而终止应用程序 当用户按住相机按钮时 我需要拍摄更多数量的图像 离开按钮后 我需要将所有图像显示为幻灯片 我必须做什么 我的代码
  • Rails 3:如何正确显示“textarea”中的文本?

    在我的 Rails 3 应用程序中我使用textarea让用户在论坛中撰写新消息 但是 当显示消息时 所有换行符看起来都像空格 没有 br 也许还有其他不匹配的例子 我还不知道 我想知道处理这个问题最合适的方法是什么 我猜想存储在数据库中的
  • 如何让线程构建块在 Ubuntu 14.04 中工作

    我想让 TBB 工作 但在 Ubuntu 14 04 上编译工作有点困难 我认为这可能是为编译器设置库位置的问题 我使用以下命令安装了 TBB sudo apt get install libtbb dev 我现在正在尝试编译一个小测试示例
  • 如何编写读取退回电子邮件的 PHP 脚本?

    我正在使用 PHP 处理退回电子邮件 我已在邮件功能中包含返回路径 例如 mail to address subject message headers f return path return path email protected c
  • 如果我不等待任务会怎样?

    考虑这个例子 var task DoSomething bool ready await DoSomethingElse if ready return null var value await DoThirdThing depends o
  • 从项目根目录移动 cypress 文件夹

    当我安装并运行 cypress 时 它会搭建一个cypress 我的项目根目录中的文件夹 问题是所有其他测试相关数据都存储在test 文件夹 有没有简单的方法可以将其移动到test cypress并配置 cypress 来查看那里 赛普拉斯
  • 在同一 SQL 查询中使用“WITH”和“UPDATE”语句

    我有一个表格 需要使用 Excel 电子表格中的一些数据进行更新 我正在考虑这样的查询 WITH temp AS SELECT abcd AS oldvalue defg AS newvalue FROM dual UNION SELECT
  • Fortran 90 - 尝试读取文件末尾之后的内容

    我在 Fortran 90 中遇到读取问题 我尝试读取 31488 行数据 我正在使用 Portland Group Fortran 90 编译器 我的错误信息是这样的 PGFIO F 217 列表定向读取 单元 14 尝试读取文件末尾 文
  • MacOS M1 上的 Docker kafka 配置时遇到问题

    我使用 macOS M1 Big Sur 11 2 3 但我的 kafka 无法正常运行 无法创建 列出主题 我不知道是不是操作系统的原因 但是kafka的日志只是这样 docker compose 日志 https i stack img
  • 使用 forEach() 返回数组值[重复]

    这个问题在这里已经有答案了 我希望返回存储在另一个对象中的数组的名称值 exports send function req res req body items forEach function item console log item
  • 设置服务总线辅助角色的 OperationTimeOut 属性

    我正在使用服务总线辅助角色模板创建辅助角色 我处理每条消息都要花费一分多钟的时间 因此 我发现工作角色多次收到相同的消息 大约每分钟收到一条消息 我认为这是因为该值默认为 60 秒 http msdn microsoft com en us
  • Android所有广播Intent列表在哪里

    我想接收Android广播消息 有所有意图的列表吗 我找到了广播意向列表 它可以位于sdks or android sdks platforms
  • 如何在 Tomcat 中为单个 Web 应用程序设置时区?

    在 Tomcat 中为单个 Web 应用程序设置时区的最佳方法是什么 我已经看到了更改 Tomcat 的命令行参数或环境变量的选项 但是有没有一种方法可以将其设置为独立于 WAR 文件而不依赖于任何 Tomcat 配置 编辑 再次强调 我正
  • Glassfish 4.1.1 - 使用我自己的证书的 DAS 抛出“j_security_check”错误

    我有一个 glassfish 4 1 1 实例正在运行 并将我自己的证书添加到我的应用程序中 直到那时一切都正常 但是 当我尝试访问 glassfish 管理员 DAS 时 连接不受信任 并且添加例外的按钮消失了 然后我发现了一些有趣的链接