我在哪里可以找到显示每个版本 Java VM/JDK 中包含的根 ssl 证书的参考列表/图表?意义——对于每个版本的 sdk/jre。此信息通常位于 \java ver\lib\security 目录中。但我正在寻找显示所有 Java 版本的图表/列表。我不是想知道如何知道我拥有的 VM 的证书。意思是,显示我在本地安装的特定 VM 的证书。我正在寻找的是一个在线参考,它显示了 Sun/Oracle 为每个 Java 版本“烘焙”到 Java VM 的根 ssl 证书。这个问题与将证书添加到密钥库、Web 浏览器或如何从第三方获取证书无关。
作为第二个相关问题(有点);除了适用于所有流行浏览器和版本的“烘焙”根证书之外,是否有人有相同的信息?证书供应商通常将这些信息散布在他们的网站上。但我需要的是一个简单的图表,你可以看到:对于浏览器/版本——根证书是什么。
干杯! 将要 -
2013 年 11 月 8 日上午 11 点更新:
我对此进行了更多研究,发现网上没有任何地方有此信息。所以我开始从如何以一种非痛苦的方式自己获取这些信息的角度来思考它。这是我结束的地方:
1) 从某种 sun/ora 源代码存储库中访问所有版本的 cacerts 文件。然后以某种方式将这些文件版本与他们将附带的 jdk 版本关联起来。然后以编程方式使用 keytool 获取文件每个版本的所有证书。瞧……我寻找的数据。但是——我一直找不到任何具有 cacerts 文件修订历史的存储库 git/subversion/cvs/blah。
2) 使用最新的 java 8 捆绑证书文件作为起点,然后使用每个证书的添加日期(keytool 提供)作为一种方法来确定过去任何时候会有什么(即:较旧的Java版本)。但是——这行不通。因为我发现有时证书会被删除。也就是说,一些本来在 1.6_x jdk 中的证书不会得到“重新升级”并包含在更高版本的证书文件中。我实际上通过将 1.5_X 证书文件与 1.6_x 证书文件进行比较来证明这一点。从技术上讲,我没有区分这两个文件,实际上我区分了文件中的证书。
3)下载所有 vers sdk(整个该死的东西)并基本上做与上述步骤 1 相同的事情。这可能有效,但很痛苦。我没有尝试这个。
所以……到目前为止还没有爱