- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个用于我的 Linux 电子邮件服务器 exim 的自签名证书。为了使我的 Java 函数能够通过 GlassFish 访问此电子邮件服务器,我最初发布了:
# keytool -importcert -v -noprompt -alias mail.mycompany.com -file /path/to/mail.mycompany.com.der -keystore /path/to/config/cacerts.jks -storepass changeit
Certificate was added to keystore
这工作正常,直到证书过期。我必须创建一个新的自签名证书,现在 Java 给出错误 PKIX path validation failed … path does not chain with any of the trust anchors
.
为了尝试解决这个问题,我派生了一个新的 mail.mycompany.com.der
来自新的 exim 证书的文件(如最初所做的那样)。但是当我发出上面的 keytool 命令(如最初所做的那样)时,它给出了错误 Certificate not imported, alias <mail.mycompany.com> already exists.
我认为问题在于我无法使用相同的 keytool 命令。我需要使用不同的证书,它不会将证书添加到 keystore ,而是用更新的版本更新已有的证书。任何人都可以为我指出该命令的正确方向吗?
顺便说一句,我是否遗漏了一些自动化流程?也就是说,证书一直都过期......这是否意味着 IT 管理员需要始终使用这样的代码手动用新证书更新 keystore ?或者,这可以以某种方式自动化吗?
最佳答案
可能最简单的方法是让 keytool 删除原始证书并生成具有相同信息的新证书。解决这个问题的一个好方法是安装 EJBCA,如果您有一个可以备用的小型 VM。它有点笨拙,但 EJBCA 是一个用 Java 编写的免费开源 CA 服务器。您可以创建自己的假 CA 证书、用户证书、服务器证书等,它们都具有信任链。此外,当您在证书过期后重新颁发证书时,它非常适合为您快速生成新的 JKS 文件。
删除:
keytool -delete -keystore myfile.jks -alias 'alias_from_keytool_-list'
关于java - 新手 keytool 命令——如何更新已添加到 keystore 的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20572100/
我正在使用keytool创建一个csr。我想知道选项-genkey和-genkeypair有什么区别。我的理解是-genkey仅创建私钥,而-genkeypair同时创建私钥和公钥。如果是这样,我如何
我正在尝试生成一个 keystore 。我已经为 keystore 设置了密码,但我试图不为 key 设置密码。 keytool -storepass "$password" -keystore ${
我无法使用 keytool (java 8) 更改 PKCS keystore 密码。当我尝试更改 key 密码时: keytool -keypasswd -keystore keystore.p12
我尝试从 Java bin 目录执行 keytool,但我收到警告 bash: keytool: command not found 的错误。 root@xxxxxx]# keytool -genke
当我执行这个命令时: keytool -list -keystore %JAVA_HOME%/jre /lib/security/cacerts 我收到了这个输出: ascom-ws, 27.05.2
试图为 android 构建版本。我跑了keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000
正在尝试将证书添加到 keystore ,以便我可以在基于 Java 的应用程序中使用它。这对我来说是一个新概念。 我有该站点的 .p7b 证书,我将一个 keytool 命令放在一起。我输入的时候提
我正在尝试通过 HTTPS 连接 Java Web API;但是,抛出异常: javax.net.ssl.SSLHandshakeException: sun.security.validator.V
批处理文件: REM Create a keystore cd C:\Users\chatt\ChessClockIFACE del debug.keystore echo %JAVA_HOME% D
我想创建一个大小为 128 位的 TDES key ,因此我使用 keytool 通过以下命令生成 jceks。当我在 C:\Program Files (x86)\Java\jdk1.8.0_25\
我尝试从命令行运行 keytool,但收到以下错误: 要使用“keytool”命令行工具,您需要安装 JDK 我安装了 Android Studio,所以我假设我在某个地方有 JDK。 我进入了/Li
是否可以使用keytool生成长期有效的CSR? 当我使用 keytool 命令生成 CSR 时,我总是得到的有效期只有 3 个月。 请告诉我是否有办法生成有效期更长的 CSR。 Valid from
我目前正在尝试firebase的新功能,它要求我提供“调试签名证书SHA-1”,我已经阅读了如何获取代码的文档,但我不知道在哪里可以找到“keytool” .顺便问一下,这段代码的功能是什么,如果我不
我正在尝试生成一个 keystore 文件来签署我的 React Native Android 应用程序并将其发布到 Play 商店。 我正在尝试按照本文档中的说明进行操作:https://faceb
我正在阅读 Facebook 开发人员的开发指南,地址为 here。 它说我必须使用 keytool 来导出我的应用程序的签名,例如: keytool -exportcert -alias andro
我试图在 Mac OS x 上提取 MD5 指纹并面临 2 个问题: 1) 我的 debug.keystore 在哪里 我在系统的任何地方都找不到 .android 文件,它应该在/Users/tug
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
在尝试导入证书时出现无法导入的错误,因为本例中的别名 (tomcat) 已经存在 $ keytool -import -v -alias tomcat -file tomcat.crt -keysto
在我看来,几乎没有任何好的工具可以帮助 webapp 部署者保护他们的环境。我觉得很多部署问题都是因为管理员没有得到适当的工具来忽略 TLS/SSL 的复杂性。我曾经有幸在 websphere 或 w
我正在尝试将 jks 证书转换为 bks 但显示下一个异常: 导入别名 myalias 条目时出现问题:java.security.KeyStoreException:java.io.IOExcept
我是一名优秀的程序员,十分优秀!