[网络/HTTPS/Java] PKI公钥基础设施体系:数字证书(X.509)、CA机构 | 含:证书管理工具(jdk keytool / openssl)

0 序

  • 文由。这两天项目上遇到了一个问题:在大数据Yarn集群上运行的Flink 实时作业,基于java.net.HttpURLConnection调用HTTPS协议的API时,调用失败,报"java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty"(invalidalgorithmparameterexception: trustAnchors参数必须是非空的)。
    为此,有必要对 PKI公钥体系、CA证书、HTTPS、SSL/TLS进行一个彻底的研究和总结了。

一遇到问题,不搞通原理,未来你始终会在同样性质的问题上翻车、并且反复踩坑。这是我不乐意经历的。

  • 本文的重要性————高。读懂本文,你就基本搞懂了 以HTTPS / SSL / CA证书为核心的PKI公钥基础设施体系,也就基本搞懂了互联网通信安全的基本原理了。

这绝非大话。

  • 知识产权与创作内容。本文属于笔记型、实验型博文,除了自己的创作内容外,还有相当部分内容是摘自几篇优秀的大佬的博文。具体可在文末的【参考文献】中见到。在此,向他们表示感谢。

  • 好了,步入正题。先从HTTPS中S (SSL/TLS)所依赖的CA证书讲起吧。

1 CA证书概述

说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书。
本文将从 Java 的角度,学习 HTTPS 和数字证书技术。

1.1 访问 HTTPS 站点资源

  • 一种方式是通过 java.net 自带的 HttpURLConnection;
  • 另一种方式是通过 Apache 的 HttpClient,这两种方式各有各的优势。这里也使用这两种方式来访问 HTTPS 站点,从下面的代码可以看到,和前面访问 HTTP 站点几乎完全一样。

1.1.1 使用 HttpURLConnection

@Test
public void basicHttpsGet() throws Exception {
     
    String url = "https://www.baidu.com";
    URL obj = new URL(url);
 
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();    
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) ...");
    con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
    con.setRequestMethod("GET");
 
    String responseBody = readResponseBody(con.getInputStream());
    System.out.println(responseBody);
}

1.1.2 使用 HttpClient

@Test
public void basicHttpsGet() throws Exception {
     
    String url = "https://www.baidu.com";    
    HttpGet request = new HttpGet(url);
    request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) ...");
     
    CloseableHttpClient httpclient = HttpClients.createDefault();
    CloseableHttpResponse response = httpclient.execute(request);
    String responseBody = readResponseBody(response);
    System.out.println(responseBody);
}

一般情况下,访问 HTTPS 站点就和访问 HTTP 站点一样简单,无论是 HttpURLConnection 还是 HttpClient ,都将底层的实现细节封装了起来,给我们提供了一致的对外接口,所以我们不用关心 HTTPS 的实现原理。
对底层细节的封装,本来是一件好事,也是一种好的设计方式,可以让开发人员使用起来更方便,提高开发效率,但是对于那些不求甚解的人来说,可能带来的困惑比之带来的方便要更多。

1.2 遭遇 PKIX path building failed ?

  • 如果使用上面的代码作为爬虫程序爬取成千上万的网页,在大多数情况下,无论是 HTTP 也好,HTTPS 也罢,都可以很好的工作。
  • 不过有时候,你可能没那么好的运气,有些站点在墙外,被强大的防火长城拒之门外,这时你可以找一些境外代理,通过《使用代理》这篇博客中介绍的方法来解决;有些站点需要使用身份认证输入用户名密码才能访问,这可以使用博客《代理认证》中介绍的方法来解决;另外,在访问有些 HTTPS 站点时,你还可能会遇到下面的异常:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

要解决这个异常,这就是我们这篇将要介绍的内容。

【扩展】:

  • HttpURLConnection 使用代理

HttpURLConnection 的 openConnection() 方法可以传入一个 Proxy 参数,如下:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 9876));
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection(proxy);

不仅如此,我们注意到 Proxy 构造函数的第一个参数为枚举类型 Proxy.Type.HTTP ,那么很显然,如果将其修改为 Proxy.Type.SOCKS 即可以使用 SOCKS 代理。

  • HttpClient 使用代理
HttpHost proxy = new HttpHost("127.0.0.1", 9876, "HTTP");
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet request = new HttpGet(url);
CloseableHttpResponse response = httpclient.execute(proxy, request);

这里要注意一点的是,虽然这里的 new HttpHost() 和上面的 new Proxy() 一样,也是可以指定协议类型的,但是遗憾的是 HttpClient 默认是不支持 SOCKS 协议的,如果我们使用下面的代码:

HttpHost proxy = new HttpHost("127.0.0.1", 1080, "SOCKS");

将会直接报协议不支持异常: org.apache.http.conn.UnsupportedSchemeException: socks protocol is not supported

1.3 证书认证的原理

  • 大多数人第一次遇到上面的异常时的反应,估计都是一脸茫然,因为这个异常信息提示比较模糊,对于不懂 HTTPS 的人来说,什么 SSLHandshake ,什么 PKIX path ,完全不知所云。
  • 所以我们要先弄懂 HTTPS 的工作原理,才好去解决这个问题。我们知道 HTTPS 其实就是 HTTP + SSL/TLS 的合体,它其实还是 HTTP 协议,只是在外面加了一层,SSL 是一种加密安全协议,引入 SSL 的目的是为了解决 HTTP 协议在不可信网络中使用明文传输数据导致的安全性问题。

可以说,整个互联网的通信安全,都是建立在 SSL/TLS 的安全性之上的。

SSL/TLS 协议及其握手过程 (浏览器中HTTPS的交互过程)

  • 学过计算机网络的同学肯定都还记得 TCP 在建立连接时的三次握手,之所以需要 TCP 三次握手,是因为网络中存在延迟的重复分组,可能会导致服务器重复建立连接造成不必要的开销。
  • SSL/TLS 协议在建立连接时与此类似,也需要客户端和服务器之间进行握手,但是其目的却大相径庭,在 SSL/TLS 握手的过程中,客户端和服务器彼此交换并验证证书,并协商出一个 “对话密钥”(即 此后进行【对称加密通信】) ,后续的所有通信都使用这个 “对话密钥” 进行加密,保证通信安全。

网上有很多 SSL/TLS 握手的示意图,其中下面这副非常全面,也非常专业,想深入了解 SSL/TLS 的同学可以研究下。

https://www.cheat-sheets.org/saved-copy/Ssl_handshake_with_two_way_authentication_with_certificates-1.pdf

  • 使用浏览器访问 HTTPS 站点时,中间发生的握手过程

阮一峰在他的 《SSL/TLS协议运行机制的概述》 和 《图解SSL/TLS协议》 两篇博客中详细介绍了 SSL/TLS 的原理,感兴趣的同学可以去看看。我这里使用 IBM Tivoli Risk Manager 用户手册 里的一张图(因为这张图比较浅显易懂)来大概的说明下我们在平时使用浏览器访问 HTTPS 站点时,中间发生的握手过程。

使用浏览器访问 HTTPS 站点时,中间发生的握手过程:

整个 SSL/TLS 的握手和通信过程,简单来说,其实可以分成下面三个阶段:

  1. 打招呼

当用户通过浏览器访问 HTTPS 站点时,浏览器会向服务器打个招呼(ClientHello),服务器也会和浏览器打个招呼(ServerHello)。所谓的打招呼,实际上是告诉彼此各自的 SSL/TLS 版本号以及各自支持的加密算法等,让彼此有一个初步了解。

  1. 表明身份、验证身份

第二步是整个过程中最复杂的一步,也是 HTTPS 通信中的关键。
为了保证通信的安全,首先要保证我正在通信的人确实就是那个我想与之通信的人,服务器会发送一个证书来表明自己的身份,浏览器根据证书里的信息进行核实(为什么通过证书就可以证明身份呢?怎么通过证书来验证对方的身份呢?这个后面再说)。如果是双向认证的话,浏览器也会向服务器发送客户端证书。
双方的身份都验证没问题之后,浏览器会和服务器协商出一个 “对话密钥” ,要注意这个 “对话密钥” 不能直接发给对方,而是要用一种只有对方才能懂的方式发给他,这样才能保证密钥不被别人截获(或者就算被截获了也看不懂)。

  1. 通信

至此,握手就结束了。双方开始聊天,并通过 “对话密钥” 加密通信的数据。

HTTPS 中的密码学

  • HTTPS 协议之所以复杂,是为了保证通信过程中数据的安全性,而要保证通信安全,它在协议中运用了大量的密码学原理,可以说 HTTPS集密码学之大成

无论是在 SSL/TLS 握手的过程中,还是在加密通信的过程中,HTTPS 都涉及了大量的密码学概念,譬如,在证书的数字签名中使用了哈希算法非对称加密算法,在加密通信的过程中使用了对称加密算法,为了防止传输的数据被篡改和重放还使用了 MAC消息认证码)等。

  • 要想深入了解 HTTPS 的工作原理,下面这些概念还是得好好研究下,网上已经有很多文章介绍这些概念了,有网友做了如下总结:

  • 哈希

  • 哈希算法又称散列,它是一种将任意长度的数据转化为固定长度的算法
  • 哈希算法是不可逆的
  • 常见的哈希算法有 MD5 和 SHA1
  • 对称加密
  • 对称加密指的是加密和解密使用相同一个密钥
  • 对称加密的优点是速度快,缺点是密钥管理不方便,必须共享密钥
  • 常见的对称加密算法有 DES、AES、Blowfish 等
  • 非对称加密
  • 非对称加密指的是加密和解密使用不同的密钥,其中一个是公钥,另一个是私钥,公钥是公开的,私钥只有自己知道
  • 使用公钥加密的数据必须使用私钥解密,使用私钥加密的数据必须使用公钥解密
  • 公钥和私钥之间存在着某种联系,但是从公钥不能(或很难)推导出私钥
  • 非对称加密的缺点是速度慢,优点是密钥管理很方便
  • 常见的非对称加密算法有 RSA、ECC 等
  • 数字证书

关于数字证书(公钥&私钥) 与 CA机构 => CA数字证书

  • 简单来说,数字证书就好比介绍信上的公章,有了它,就可以证明这份介绍信确实是由某个公司发出的,而证书可以用来证明任何一个东西的身份,只要这个东西能出示一份证明自己身份的证书即可,譬如可以用来验证某个网站的身份,可以验证某个文件是否可信等等。《数字证书及 CA 的扫盲介绍》 和 《数字证书原理》 这篇博客对数字证书进行了很通俗的介绍。

  • 知道了数字证书是什么之后,我们往往更关心它的原理,在上面介绍 SSL/TLS 握手的时候留了两个问题:为什么通过证书就可以证明身份呢?怎么通过证书来验证对方的身份呢?

  • 这就要用到上面所说的非对称加密了,非对称加密的一个重要特点是:使用公钥加密的数据必须使用私钥才能解密;同样的,使用私钥加密的数据必须使用公钥解密

正是因为这个特点,网站就可以在自己的证书中公开自己的公钥,并使用自己的私钥将自己的身份信息进行加密一起公开出来,这段被私钥加密的信息就是证书的数字签名,浏览器在获取到证书之后,通过证书里的公钥对签名进行解密,如果能成功解密,则说明证书确实是由这个网站发布的,因为只有这个网站知道他自己的私钥(如果他的私钥没有泄露的话)。

  • 非对称加密算法中,最出众的莫过于 RSA 算法

关于 RSA 算法的数学细节,可以参考:阮一峰的《RSA算法原理(一)》和《RSA算法原理(二)》这两篇博客,强烈推荐。

  • 当然,如果只是简单的对数字签名进行校验的话,还不能完全保证这个证书确实就是网站所有,黑客完全可以在中间进行劫持,使用自己的私钥对网站身份信息进行加密,并将证书中的公钥替换成自己的公钥,这样浏览器同样可以解密数字签名,签名中身份信息也是完全合法的。这就好比那些地摊上伪造公章的小贩,他们可以伪造出和真正的公章完全一样的出来以假乱真。

为了解决这个问题,信息安全的专家们引入了 CA 这个东西,所谓 CA ,全称为 Certificate Authority ,翻译成中文就是证书授权中心,它是专门负责管理和签发证书的第三方机构
因为证书颁发机构关系到所有互联网通信的身份安全。因此一定要是一个【非常权威的机构】,像 GeoTrustGlobalSign 等等,这里有一份常见的 CA 清单。
如果一个网站需要支持 HTTPS ,它就要一份证书来证明自己的身份,而这个证书必须从 CA 机构申请,大多数情况下申请数字证书的价格都不菲,不过也有一些免费的证书供个人使用,像最近比较火的 Let's Encrypt
从安全性的角度来说,免费的和收费的证书没有任何区别,都可以为你的网站提供足够高的安全性,唯一区别在于如果你从权威机构购买了付费的证书,一旦由于证书安全问题导致经济损失,可以获得一笔巨额的赔偿

  • 如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。

如果一个用户想鉴别另一个证书的真伪,他就用 CA公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。
通过这种方式,黑客就不能简单的修改证书中的公钥了,因为现在公钥有了 CA数字签名,由 CA 来证明公钥的有效性,不能轻易被篡改,而黑客自己的公钥是很难被 CA 认可的,所以我们无需担心证书被篡改的问题了。

下图显示了证书的申请流程(图片来自刘坤的技术博客):

CA 证书可以具有层级结构,它建立了自上而下的信任链,下级 CA 信任上级 CA ,下级 CA 由上级 CA 颁发证书并认证。 譬如 Google 的证书链如下图所示:

可以看出:http://google.com.hk 的 SSL 证书由 Google Internet Authority G2 这个 CA 来验证,而 Google Internet Authority G2 由 GeoTrust Global CA 来验证,GeoTrust Global CA 由 Equifax Secure Certificate Authority 来验证。这个最顶部的证书,我们称之为根证书root certificate)。
那么谁来验证根证书呢?答案是它自己,根证书自己证明自己,换句话来说也就是:根证书是不需要证明的浏览器在验证证书时,从【根证书】开始,沿着证书链的路径依次向下验证,根证书是整个证书链的安全之本,如果根证书被篡改,整个证书体系的安全将受到威胁。所以:不要轻易的相信根证书
当下次你访问某个网站遇到提示说,请安装我们的根证书,它可以让你访问我们网站的体验更流畅通信更安全时,最好留个心眼。在安装之前,不妨看看这几篇博客:《12306的证书问题》、《在线买火车票为什么要安装根证书?》。

小结:PKIPublic Key Infrastructure / 公钥基础设施)

  • 最后总结一下:

其实上面说的这些,什么非对称加密数字签名CA 机构根证书等等,其实都是 PKI核心概念
PKIPublic Key Infrastructure)中文称作公钥基础设施,它提供公钥加密和数字签名服务的系统或平台,方便管理密钥和证书,从而建立起一个安全的网络环境。
数字证书最常见的格式是 X.509 。所以这种公钥基础设施又称之为 PKIX

至此,我们大致弄懂了上面的异常信息,sun.security.validator.ValidatorException: PKIX path building failed,也就是在沿着证书链的路径验证证书时出现异常,验证失败了。

讲了这么多,全都是些理论的东西,下面开始实践吧,看看怎么解决这个异常。

  • 数字证书、CA、PKI体系的关系?
  • CA是PKI的核心执行机构,是PKI的主要组成部分;
  • 数字证书是由CA机构颁发的

即:三者是从属关系:数字证书从属于CA,CA从属于PKI

1.4 Java 的证书

浏览器、操作系统中默认存放的可信CA证书列表

  • 上面所介绍的是浏览器CA证书进行验证的过程————浏览器保存了一个常用的 CA 证书列表,在验证证书链的有效性时,直接使用保存的证书里的公钥进行校验,如果在证书列表中没有找到或者找到了但是校验不通过,那么浏览器会警告用户,由用户决定是否继续。

  • 与此类似的,操作系统也一样保存有一份可信的证书列表

譬如在 Windows 系统下,你可以运行 certmgr.msc 打开证书管理器查看,这些证书实际上是存储在 Windows 的注册表中。一般情况下位于:\SOFTWARE\Microsoft\SystemCertificates\ 路径下。

Java JRE中默认存放的可信证书列表: cacerts => 证书管理工具 : keytool / KeyStore Explorer

  • 那么,在 Java 程序中是如何验证证书的呢?

  • 浏览器操作系统类似,Java 在 JRE 的安装目录下也保存了一份默认可信的证书列表,这个列表一般是保存在 $JRE/lib/security/cacerts 文件中。

cacerts 文件的默认密码为 changeit (但是能保证的是,绝大多数人、绝大多数Java程序都不会 change it)。
要查看这个文件,可以使用类似 KeyStore Explorer 这样的软件。
当然,也可以使用 JRE 自带的 keytool 工具(后面再介绍)

数字证书有不同的存储格式、且可相互转换

  • 我们知道,证书有很多种不同的存储格式

譬如 CA 在发布证书时,常常使用 PEM 格式————这种格式的好处是纯文本,内容是 BASE64 编码的,证书中使用 "-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----" 来标识。
另外还有比较常用的二进制 DER 格式;在 Windows 平台上较常使用的 PKCS#12 格式等等。
当然,不同格式的证书之间是可以相互转换的。

  • 常用的数字证书转换工具: openssl

我们可以使用 openssl 这个命令行工具来转换。参考: SSL Converter
另外,想了解更多证书格式的,可以参考这里:Various SSL/TLS Certificate File Types/Extensions

在 Java 平台下,数字证书(非对称加密的【公钥(Certificate/PublicKey)】、对称加密的【密钥(SecretKey)】)、非对称加密的【私钥(PrivateKey)】常常被存储在 KeyStore(cacerts等) 文件中

  • 在 Java 平台下,证书常常被存储在 KeyStore 文件中。

上面说的 cacerts 文件就是一个 KeyStore 文件。

  • KeyStore 不仅可以存储数字证书,还可以存储密钥
  • 存储在 KeyStore 文件中的对象有3种类型:Certificate/PublicKey(证书)、PrivateKeySecretKey
  • Certificate/PublicKey 就是证书、CA公钥证书
  • PrivateKey非对称加密中的私钥
  • SecretKey 用于对称加密,是对称加密中的密钥
  • KeyStore 文件根据用途,也有很多种不同的格式:JKS、JCEKS、PKCS12、DKS 等等。

PixelsTech 上有一系列文章对 KeyStore 有深入的介绍,可以学习下:Different types of keystore in Java

在 Java 平台下,狭义地划分————密钥存储文件(KeyStore)可细分为2种:KeyStore / TrustStore(cacerts等)

  • 到目前为止,我们所说的 KeyStore 其实只是一种文件格式而已;实际上在 Java 的世界里 KeyStore 文件分成两种:KeyStoreTrustStore

  • 这是两个比较容易混淆的概念,不过这两个东西从文件格式来看其实是一样的。

  • KeyStore 保存私钥,用来加解密或者为别人做签名

  • TrustStore 保存一些可信任的证书,访问 HTTPS 时对被访问者进行认证,以确保它是可信任的。

所以,准确来说,上面的 cacerts 文件应该叫做 TrustStore 而不是 KeyStore,只是它的文件格式是 KeyStore 文件格式罢了。

在 Java 平台下,密切相关的: KeyManager / TrustManager

  • 除了 KeyStoreTrustStoreJava 里还有两个类 KeyManagerTrustManager 与此息息相关。

JSSE 的参考手册中有一张示意图,说明了各个类之间的关系:

可以看出如果要进行 SSL 会话,则:

  • 必须得新建一个 SSLSocket 对象;
  • SSLSocket 对象是通过 SSLSocketFactory 来管理的;
  • SSLSocketFactory 对象则依赖于 SSLContext
  • SSLContext 对象又依赖于 KeyManagerTrustManagerSecureRandom

我们这里最关心的是 TrustManager 对象,另外两个暂且忽略。
因为正是 TrustManager 负责证书的校验,对网站进行认证。要想在访问 HTTPS 时通过认证,不报sun.security.validator.ValidatorException异常,必须从这里开刀。

方法1:自定义 TrustManager 绕过证书检查

  • 我们知道了 TrustManager专门负责校验证书的,那么:最容易想到的方法应该就是改写 TrustManager 类————让它不要对证书做校验

这种方法虽然粗暴,但是却相当有效,而且 Java 中的 TrustManager 也确实可以被重写,下面是示例代码:

@Test
public void basicHttpsGetIgnoreCertificateValidation() throws Exception {
     
    String url = "https://kyfw.12306.cn/otn/";
     
    // Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[] {
        new X509TrustManager() {
            public X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(X509Certificate[] certs, String authType) {
                // don't check
            }
            public void checkServerTrusted(X509Certificate[] certs, String authType) {
                // don't check
            }
        }
    };
     
    SSLContext ctx = SSLContext.getInstance("TLS");
    ctx.init(null, trustAllCerts, null);
     
    LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx);
     
    CloseableHttpClient httpclient = HttpClients.custom()
            .setSSLSocketFactory(sslSocketFactory)
            .build();
     
    HttpGet request = new HttpGet(url);
    request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) ...");
     
    CloseableHttpResponse response = httpclient.execute(request);
    String responseBody = readResponseBody(response);
    System.out.println(responseBody);
}
  • 我们新建了一个匿名类,继承自 X509TrustManager 接口,这个接口提供了3个方法用于验证证书的有效性:getAcceptedIssuerscheckClientTrustedcheckServerTrusted

我们在验证的函数中直接返回,不做任何校验
这样在访问 HTTPS 站点时,就算是证书不可信,也不会抛出异常,可以继续执行下去。

  • 负面影响:

这种方法虽然简单,但是却有一个最严重的问题,就是不安全
因为不对证书做任何合法性校验,而且这种处理是全局性的,不管青红皂白,所有的证书都不会做验证。
所以,就算遇到不信任的证书,代码依然会继续与之通信,至于通信的数据安全不安全就不能保证了。
所以,如果你只是想在测试环境做个实验,那没问题,但是如果你要将代码发布到生产环境,请慎重。

方法2:导入、使用证书

  • 对于有些证书,我们基本上确定是可以信任的,但是这些证书又不在 Java 的 cacerts 文件中。对于这些网站,我们可以将其添加到信任证书列表中,而不是使用上面的方法统统都相信,这样程序的安全性仍然可以得到保障。

譬如 12306 网站,或者使用了 Let's Encrypt 证书的一些网站。

  • 使用 keytool 导入证书

简单的做法是:将这些网站的证书导入到 cacerts 文件中。
这样 Java 程序在校验证书的时候就可以从 cacerts 文件中找到并成功校验这个证书了。
上面我们介绍过 JRE 自带的 keytool 这个工具,这个工具小巧而强悍,拥有很多功能。

  • 首先,我们可以使用它查看 KeyStore 文件,使用下面的命令可以列出 KeyStore 文件中的所有内容(包括证书、私钥等):
keytool -list -keystore cacerts
  • 然后,通过下面的命令,将证书导入到 cacerts 文件中:
keytool -import -v -trustcacerts -alias ca -file d:\cert\ca.cer -storepass changeit -keystore "C:\Program Files (x86)\Java\jdk1.8.0_261\jre\lib\security\cacerts"
  • -alias 证书别名
  • -file 证书名称和路径
  • -keystore cacerts 路径
  • -storepass 证书密码
  • -keystore 可指定导入到密钥库中的文件命名 - 一般可以不写

要想将网站的证书导入 cacerts 文件中,首先要获取网站的证书。譬如上面命令中的 12306.cer 文件,它是使用浏览器的证书导出向导保存的。如下图所示:

关于 keytool 的更多用法,可以参考 keytool 官网手册
此外,SSLShopper 上也有一篇文章列出了常用的 keytool 命令
其三,可查看本文档的keytool章节,进行系统地了解、学习。

方法3:使用 KeyStore 动态加载证书

  • 使用 keytool 导入证书,这种方法不仅简单,而且保证了代码的安全性,最关键的是代码不用做任何修改

所以,我比较推荐这种方法。但是这种方法有一个致命的缺陷,那就是你需要修改 JRE 目录下的文件,如果你的程序只是在自己的电脑上运行,那倒没什么,可如果你的程序要部署在其他人的电脑上或者公司的服务器上,而你没有权限修改 JRE 目录下的文件,这该怎么办?
如果你的程序是一个分布式的程序要部署在成百上千台机器上,难道还得修改每台机器的 JRE 文件吗?
好在我们还有另一种通过编程的手段来实现的思路在代码中动态的加载 KeyStore 文件来完成证书的校验。抱着知其然知其所以然的态度,我们在最后也实践下这种方法。通过编写代码可以更深刻的了解 KeyStoreTrustManagerFactorySSLContext 以及 SSLSocketFactory 这几个类之间的关系。

@Test
public void basicHttpsGetUsingSslSocketFactory() throws Exception {
 
    String keyStoreFile = "D:\\code\\ttt.ks";
    String password = "poiuyt";
    KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
    FileInputStream in = new FileInputStream(keyStoreFile);
    ks.load(in, password.toCharArray());
     
    System.out.println(KeyStore.getDefaultType().toString());
    System.out.println(TrustManagerFactory.getDefaultAlgorithm().toString());
     
    TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    tmf.init(ks);
    SSLContext ctx = SSLContext.getInstance("TLS");
    ctx.init(null, tmf.getTrustManagers(), null);
     
    LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx);
     
    String url = "https://ttt.aneasystone.com";
     
    /**
     * Return the page with content:
     *     401 Authorization Required
     */
     
    CloseableHttpClient httpclient = HttpClients.custom()
            .setSSLSocketFactory(sslSocketFactory)
            .build();
     
    HttpGet request = new HttpGet(url);
    request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) ...");
     
    CloseableHttpResponse response = httpclient.execute(request);
    String responseBody = readResponseBody(response);
    System.out.println(responseBody);
}

上面的代码使用了 HttpClient ,如果是使用 HttpsURLConnection 只需要改动下面两行即可:

HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setSSLSocketFactory(ctx.getSocketFactory());

方法4:通过Java系统属性配置 trustStore : javax.net.ssl.trustStore / javax.net.ssl.trustStorePassword

  • 最后的最后,我们还可以通过下面的属性来指定 trustStore ,这样也不需要编写像上面那样大量繁琐的代码。

另外,参考我前面的博客,这些属性还可以通过 JVM 的参数来设置。

System.setProperty("javax.net.ssl.trustStore", "D:\\code\\ttt.ks");
System.setProperty("javax.net.ssl.trustStorePassword", "poiuyt");

或者:添加【VM Options(JVM参数)】

-Djavax.net.debug=all -Djava.net.ssl.trustStore=C:/Programme/Java/jre1.8.0_102/lib/security/cacerts-Djavax.net.ssl.trustStorePassword=changeit

1.5 CA证书与PKI的核心概念

主要参考自: https://www.cnblogs.com/librarookie/p/16330406.html

PKCS 公钥加密标准

  • PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Security)所制定,PKCS 目前共发布过 15 个标准。

更多公钥加密标准

  • X.509 是密码学里公钥证书格式标准
  • X.509是常见通用的证书格式。是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。
  • X.509附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。
  • X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里。

应用场景

  • 应用场景。如:电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。

常用加密标准

  • PKCS #7: 密码讯息语法标准(Cryptographic Message Syntax Standard),规范了以公开金钥基础设施(PKI)所产生之签章/密文之格式。其目的一样是为了拓展数位证书的应用。
  • PKCS #10: 证书申请标准(Certification Request Standard),英语:PKCS_10,规范了向证书中心申请证书之CSR(certificate signing request)的格式。
  • PKCS #12: 个人讯息交换标准(Personal Information Exchange Syntax Standard),定义了包含私钥与公钥证书(public key certificate)的文件格式。私钥采密码(password)保护。常见的PFX就履行了PKCS#12。

常用扩展名

  • JKS格式.jks / .keystore / .truststore

  • PKCS#7格式.p7b / .p7c / .spc

  • PKCS#12格式: .p12 / .pfx

  • jks.keystore 文件是Java是存储密钥(公钥、私钥)的容器

  • .truststore 文件是存储【自己信任对象公钥】的容器

  • .pem : 隐私增强型电子邮件(Privacy-enhanced Electronic Mail, pem),通常是Base64格式的文本格式;

  • .pem 文件可以存放证书或私钥,或者两者都包含。如果只包含私钥,一般用 .key 文件代替。
  • .cer / .crt/ .der : 通常是DER(X.690#DER_encoding)二进制格式的。
  • .der.cer 文件是二进制格式,只含有证书信息,不包含私钥。
  • .crt 文件是二进制格式或文本格式,一般为文本格式,功能与 .der.cer 证书文件相同。
  • .pfx.p12 文件是二进制格式,同时包含证书私钥,且一般有密码保护。
  • .pfx – PFX,PKCS#12之前的格式(通常用PKCS#12格式,比如由互联网资讯服务产生的PFX文件);
  • .p12PKCS#12格式,包含证书的同时、可能还包含私钥;
  • .csr : 数字证书签名请求文件(Cerificate Signing Request)
  • .p7r : 是CA对证书请求的回复,只用于导入。
  • .p7b : 以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

Tips: 区别证书的不是后缀名,而是证书文件本身的格式与内容。

术语介绍

  • 密钥对: 在非对称加密技术中,有两种密钥,分为私钥公钥

  • 公钥: 公钥用来给数据加密,用公钥加密的数据只能使用私钥解密,公钥是密钥对持有者公布给他人的。

  • 私钥: 用来解密公钥加密的数据,私钥是密钥对所有者持有,不可公布。

  • 摘要: 对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

  • 签名: 使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。

  • 签名验证: 数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

  • 密钥分为两种: 对称密钥非对称密钥

  • 对称密钥加密: 又称私钥加密或会话密钥加密算法,指的就是加、解密使用的同是一串密钥,所以被称做对称加密。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。
  • 非对称密钥加密: 又称公钥密钥加密。指的是加、解密使用不同的密钥,一把作为公开的公钥,另一把作为私钥保存。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。

【Tips】

  • 密钥:指的是私钥或者公钥 —> 密钥 = 私钥/公钥;
  • 密钥对:指的是公钥加上私钥 —> 密钥对 = 私钥+公钥;
  • 非对称加密:
  • 公钥和私钥是成对的,公钥和私钥唯一对应,它们互相解密。
  • 公钥一般用来加密和验证签名,私钥用来签名和解密。
  • 加密(加解密): 公钥加密,私钥解密;加密的目的是保证信息的保密传输,使只有具备资格的一方才能解密。
  • 认证(加验签): 私钥数字签名,公钥验证签名;加签的目的是让收到消息的一方确认该消息是由特定方发送的。
  • 在实际的应用中,通常将两者结合在一起使用,例如,对称密钥加密系统用于存储大量数据信息,而公开密钥加密系统则用于加密密钥。

原文链接:https://blog.csdn.net/qq_41586280/article/details/82669840

PEM 格式

  • PEM格式是证书颁发机构颁发证书的最常见格式.PEM证书通常具有扩展名。例如.pem.crt.cer.key

  • 它们是以二进制文件的Base64编码的保存,包含“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”语句。

  • 服务器证书,中间证书和私钥都可以放入PEM格式。

  • 相较于PEM的Base64编码格式以文本文件的形式存在,CERT格式的文件为PEM的二进制格式,文件扩展名.cert /.cer /.crt

  • KEY格式通常用来存放公钥或者私钥,并非X.509证书,编码可能是PEM也有可能是DER,扩展名为 .key

Apache和其他类似服务器使用PEM格式证书。几个PEM证书,甚至私钥,可以包含在一个文件中,一个在另一个文件之下,但是大多数平台(例如Apache)希望证书和私钥位于单独的文件中。


OSS云平台中自定义桶域名的SSL证书(PEM格式)

DER 格式

  • DER格式只是证书的二进制形式,不含私钥。
  • 文件扩展名通常是.cer,有时会有.der的文件扩展名。
  • 判断DER .cer文件和PEM .cer文件方法是在文本编辑器中打开它,并查找BEGIN / END语句。
  • 所有类型的证书和私钥都可以用DER格式编码。
  • DER通常与Java平台一起使用。
  • SSL转换器只能将证书转换为DER格式。

PKCS#7 / P7B 格式

  • PKCS#7是签名或加密数据的格式标准,官方称之为容器。由于证书是可验真的签名数据,所以可以用SignedData结构表述。
  • PKCS#7或P7B格式通常以Base64 ASCII格式存储,文件扩展名为.p7b.p7c
  • P7B证书包含“----- BEGIN PKCS7 -----”和“----- END PKCS7 -----”语句。
  • P7B文件仅包含证书和链证书,而不包含私钥。
  • 多个平台支持P7B文件,包括Microsoft Windows和Java Tomcat

PKCS#12 / PFX 格式

  • PKCS#12 是公钥加密标准,通用格式(rsa公司标准)。规定了可包含所有私钥、公钥和证书。文件格式是加密过的。
  • PKCS#12 或 PFX 格式是其以二进制格式存储,也称为 PFX 文件,在windows中可以直接导入到密钥区。也可用于导入和导出证书和私钥。
  • PKCS#12 由 PFX 进化而来的,用于交换公共的和私有的对象的标准格式。
  • 文件通常具有扩展名,例如.pkcs12 .pfx .p12。
  • 密钥库和私钥用相同密码进行保护

JKS 格式

  • JKS是java用来存储密钥的容器。可以同时容纳n个公钥或私钥,后缀一般是.jks或者.keystore.truststore等。
  • 在Java 8之前,这些文件的默认格式为JKS(android .keystore 也是jsk格式的证书)。
  • 从Java 9开始,默认的密钥库格式为PKCS12
  • Android签名keystore文件也是jks格式,且1.8之后要求转换到p12格式。
  • JKS是二进制格式,同时包含证书私钥,一般有密码保护,只能存储非对称密钥对私钥 + x509公钥证书)。
  • 当应用程序需要通过SSL / TLS进行通信时,在大多数情况下将使用java keystorejava truststore
  • 密钥库和私钥用不同的密码进行保护

JKSPKCS12之间的最大区别是JKS是Java专用的格式,而PKCS12是存储加密的私钥和证书的标准化且与语言无关的方式。

2 数字证书的管理与格式转换

  • 转换工具
  • 工具1 : openssl : OpenSSL是一个非常有用的开源命令行工具包,可用于 X.509 证书,证书签名请求(CSRs)和加密密钥。

详情参见:[网络/SSH]OpenSSH: sshd / sftp-server / ssh-agent | ssh / scp / sftp | OpenSSL - 博客园/千千寰宇

  • 工具2 : keytool : java jdk自带的证书处理工具

2.1 证书处理工具 : openssl

openssl 常用选项

 -inform PEM|DER    输入格式 - DER或PEM(x509默认为PEM)
 -in infile         输入文件(x509默认为stdin)
 -outform PEM|DER   输出格式 - DER或PEM(x509默认为PEM)
 -out outfile       输出文件(x509默认为stdout)
 -keyform PEM|DER|ENGINE 私钥格式 - 默认PEM
 -passin val        私钥密码/口令来源
 -modulus           打印RSA密钥模数
 -pubkey            输出公钥
 -fingerprint       打印证书的指纹
 -alias             输出证书别名
 -noout             没有输出,只有状态
 -nocert            无证书输出
 -trustout          输出一个受信任的证书
 -setalias val      设置证书别名
 -days int          签署的证书到期前的时间 - 默认 30 天
 -signkey val       用参数自行签署证书
 -x509toreq         输出一个认证请求对象
 -req               输入是一个证书请求,签署并输出
 -CA infile         设置CA证书,必须是PEM格式
 -CAkey val         设置 CA 密钥,必须是 PEM 格式;如果不在 CAfile 中
 -text              打印文本形式的证书
 -ext val           打印各种X509V3扩展文件
 -extfile infile    要添加X509V3扩展的文件
 -writerand outfile 将随机数据写到指定文件中
 -extensions val    要使用的配置文件中的部分
 -nameopt val       各种证书名称选项
 -certopt val       各种证书文本选项
 -checkhost val     检查证书是否与主机匹配
 -checkemail val    检查证书是否与电子邮件匹配
 -checkip val       检查证书是否与ipaddr匹配
 -CAform PEM|DER    CA格式--默认PEM
 -CAkeyform PEM|DER|ENGINE      CA密钥格式--默认为PEM
 
 -export        输出PKCS12文件
 -nodes         不要加密私钥
 -nokeys        不输出私钥
 -keysig        设置 MS 密钥签名类型
 -nocerts       不输出证书
 -clcerts       只输出客户证书
 -cacerts       只输出CA证书
 -info          打印有关PKCS#12结构的信息
 -chain         添加证书链
 -certpbe val   证书PBE算法(默认为RC2-40)
 -inkey val     如果不是infile,则为私钥
 -certfile infile   从文件中加载证书
 -CApath dir    PEM格式的CA的目录
 -CAfile infile     PEM格式的CA的文件
 -no-CAfile     不加载默认的证书文件
 -no-CApath     不从默认的证书目录中加载证书

2.2 证书处理工具 : jdk keytool

2.2.1 keytool 简述

  • Keytool 是一个 Java JDK 内置的 数字证书的管理工具 ; Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中

$JAVA_HOME\bin\keytool.exe

  • 在keystore里,包含两种数据:
  • 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
  • 可信任的证书实体(trusted certificate entries)——只包含公钥
  • ailas(别名) : 每个 keystore 都关联这一个独一无二的alias。这个alias通常不区分大小写

2.2.2 jre cacerts 证书库 # 简介

  • cacerts 证书库

全称: certified authority certificates = 认证机构证书

  • cacerts 证书库的文件存储路径
$JAVA_HOME/jre/lib/security/cacerts

ls -la $JAVA_HOME/jre/lib/security

Windows

Linux

2.2.3 jre cacerts 证书库 # 解析cacerts证书库 / 查看所有cacerts证书

cacerts 证书库是一个不易于直接阅读的二进制文件,需通过keytool工具进行解读、查阅。

  • 解析cacerts证书库文件
keytool   -list  -v  -keystore cacerts -storepass "changeit" > ./cacerts.$(date +'%Y%m%d%H%M%S').log

注:JDK 密钥库文件cacerts的默认密码为changeit

查看cacerts.log的全文内容:(以 oracle jdk1.8.0_261版本为例)

密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 93 个条目

别名: verisignclass2g2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
发布者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
序列号: b92f60cc889fa17a4609b85b706c8aaf
有效期为 Mon May 18 08:00:00 CST 1998 至 Wed Aug 02 07:59:59 CST 2028
证书指纹:
	 MD5:  2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
	 SHA1: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D
	 SHA256: 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
签名算法名称: SHA1withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 1


*******************************************
*******************************************


别名: digicertassuredidg3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: ba15afa1ddfa0b54944afcd24a06cec
有效期为 Thu Aug 01 20:00:00 CST 2013 至 Fri Jan 15 20:00:00 CST 2038
证书指纹:
	 MD5:  7C:7F:65:31:0C:81:DF:8D:BA:3E:99:E2:5C:AD:6E:FB
	 SHA1: F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89
	 SHA256: 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: CB D0 BD A9 E1 98 05 51   A1 4D 37 A2 83 79 CE 8D  .......Q.M7..y..
0010: 1D 2A E4 84                                        .*..
]
]



*******************************************
*******************************************


别名: verisignuniversalrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
发布者: CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
序列号: 401ac46421b31321030ebbe4121ac51d
有效期为 Wed Apr 02 08:00:00 CST 2008 至 Wed Dec 02 07:59:59 CST 2037
证书指纹:
	 MD5:  8E:AD:B5:01:AA:4D:81:E4:8C:1D:D1:E1:14:00:95:19
	 SHA1: 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
	 SHA256: 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false
0000: 30 5F A1 5D A0 5B 30 59   30 57 30 55 16 09 69 6D  0_.].[0Y0W0U..im
0010: 61 67 65 2F 67 69 66 30   21 30 1F 30 07 06 05 2B  age/gif0!0.0...+
0020: 0E 03 02 1A 04 14 8F E5   D3 1A 86 AC 8D 8E 6B C3  ..............k.
0030: CF 80 6A D4 48 18 2C 7B   19 2E 30 25 16 23 68 74  ..j.H.,...0%.#ht
0040: 74 70 3A 2F 2F 6C 6F 67   6F 2E 76 65 72 69 73 69  tp://logo.verisi
0050: 67 6E 2E 63 6F 6D 2F 76   73 6C 6F 67 6F 2E 67 69  gn.com/vslogo.gi
0060: 66                                                 f


#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B6 77 FA 69 48 47 9F 53   12 D5 C2 EA 07 32 76 07  .w.iHG.S.....2v.
0010: D1 97 07 19                                        ....
]
]



*******************************************
*******************************************


别名: digicerttrustedrootg4 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: 59b1b579e8e2132e23907bda777755c
有效期为 Thu Aug 01 20:00:00 CST 2013 至 Fri Jan 15 20:00:00 CST 2038
证书指纹:
	 MD5:  78:F2:FC:AA:60:1F:2F:B4:EB:C9:37:BA:53:2E:75:49
	 SHA1: DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4
	 SHA256: 55:2F:7B:DC:F1:A7:AF:9E:6C:E6:72:01:7F:4F:12:AB:F7:72:40:C7:8E:76:1A:C2:03:D1:D9:D2:0A:C8:99:88
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: EC D7 E3 82 D2 71 5D 64   4C DF 2E 67 3F E7 BA 98  .....q]dL..g?...
0010: AE 1C 0F 4F                                        ...O
]
]



*******************************************
*******************************************


别名: luxtrustglobalroot2ca [jdk]
创建日期: 2019-11-19
条目类型: trustedCertEntry

所有者: CN=LuxTrust Global Root 2, O=LuxTrust S.A., C=LU
发布者: CN=LuxTrust Global Root 2, O=LuxTrust S.A., C=LU
序列号: a7ea6df4b449eda6a24859ee6b815d3167fbbb1
有效期为 Thu Mar 05 21:21:57 CST 2015 至 Mon Mar 05 21:21:57 CST 2035
证书指纹:
	 MD5:  B2:E1:09:00:61:AF:F7:F1:91:6F:C4:AD:8D:5E:3B:7C
	 SHA1: 1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F
	 SHA256: 54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: FF 18 28 76 F9 48 05 2C   A1 AE F1 2B 1B 2B B2 53  ..(v.H.,...+.+.S
0010: F8 4B 7C B3                                        .K..
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.3.171.1.1.1.10]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1E 68 74 74 70 73 3A   2F 2F 72 65 70 6F 73 69  ..https://reposi
0010: 74 6F 72 79 2E 6C 75 78   74 72 75 73 74 2E 6C 75  tory.luxtrust.lu

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: FF 18 28 76 F9 48 05 2C   A1 AE F1 2B 1B 2B B2 53  ..(v.H.,...+.+.S
0010: F8 4B 7C B3                                        .K..
]
]



*******************************************
*******************************************


别名: identrustpublicca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=IdenTrust Public Sector Root CA 1, O=IdenTrust, C=US
发布者: CN=IdenTrust Public Sector Root CA 1, O=IdenTrust, C=US
序列号: a0142800000014523cf467c00000002
有效期为 Fri Jan 17 01:53:32 CST 2014 至 Tue Jan 17 01:53:32 CST 2034
证书指纹:
	 MD5:  37:06:A5:B0:FC:89:9D:BA:F4:6B:8C:1A:64:CD:D5:BA
	 SHA1: BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD
	 SHA256: 30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E3 71 E0 9E D8 A7 42 D9   DB 71 91 6B 94 93 EB C3  .q....B..q.k....
0010: A3 D1 14 A3                                        ....
]
]



*******************************************
*******************************************


别名: utnuserfirstobjectca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
发布者: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
序列号: 44be0c8b500024b411d3362de0b35f1b
有效期为 Sat Jul 10 02:31:20 CST 1999 至 Wed Jul 10 02:40:36 CST 2019
证书指纹:
	 MD5:  A7:F2:E4:16:06:41:11:50:30:6B:9C:E3:B4:9C:B0:C9
	 SHA1: E1:2D:FB:4B:41:D7:D9:C3:2B:30:51:4B:AC:1D:81:D8:38:5E:2D:46
	 SHA256: 6F:FF:78:E4:00:A7:0C:11:01:1C:D8:59:77:C4:59:FB:5A:F9:6A:3D:F0:54:08:20:D0:F4:B8:60:78:75:E5:8F
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.usertrust.com/UTN-USERFirst-Object.crl]
]]

#3: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  codeSigning
  timeStamping
  1.3.6.1.4.1.311.10.3.4
]

#4: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  DigitalSignature
  Non_repudiation
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: DA ED 64 74 14 9C 14 3C   AB DD 99 A9 BD 5B 28 4D  ..dt...<.....[(M
0010: 8B 3C C9 D8                                        .<..
]
]



*******************************************
*******************************************


别名: geotrustuniversalca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US
发布者: CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US
序列号: 1
有效期为 Thu Mar 04 13:00:00 CST 2004 至 Sun Mar 04 13:00:00 CST 2029
证书指纹:
	 MD5:  92:65:58:8B:A2:1A:31:72:73:68:5C:B4:A5:7A:07:48
	 SHA1: E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79
	 SHA256: A0:45:9B:9F:63:B2:25:59:F5:FA:5D:4C:6D:B3:F9:F7:2F:F1:93:42:03:35:78:F0:73:BF:1D:1B:46:CB:B9:12
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: DA BB 2E AA B0 0C B8 88   26 51 74 5C 6D 03 D3 C0  ........&Qt\m...
0010: D8 8F 7A D6                                        ..z.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: DA BB 2E AA B0 0C B8 88   26 51 74 5C 6D 03 D3 C0  ........&Qt\m...
0010: D8 8F 7A D6                                        ..z.
]
]



*******************************************
*******************************************


别名: digicertglobalrootg3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Global Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Global Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: 55556bcf25ea43535c3a40fd5ab4572
有效期为 Thu Aug 01 20:00:00 CST 2013 至 Fri Jan 15 20:00:00 CST 2038
证书指纹:
	 MD5:  F5:5D:A4:50:A5:FB:28:7E:1E:0F:0D:CC:96:57:56:CA
	 SHA1: 7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E
	 SHA256: 31:AD:66:48:F8:10:41:38:C7:38:F3:9E:A4:32:01:33:39:3E:3A:18:CC:02:29:6E:F9:7C:2A:C9:EF:67:31:D0
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B3 DB 48 A4 F9 A1 C5 D8   AE 36 41 CC 11 63 69 62  ..H......6A..cib
0010: 29 BC 4B C6                                        ).K.
]
]



*******************************************
*******************************************


别名: entrustrootcaec1 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Entrust Root Certification Authority - EC1, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
发布者: CN=Entrust Root Certification Authority - EC1, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
序列号: a68b79290000000050d091f9
有效期为 Tue Dec 18 23:25:36 CST 2012 至 Fri Dec 18 23:55:36 CST 2037
证书指纹:
	 MD5:  B6:7E:1D:F0:58:C5:49:6C:24:3B:3D:ED:98:18:ED:BC
	 SHA1: 20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47
	 SHA256: 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B7 63 E7 1A DD 8D E9 08   A6 55 83 A4 E0 6A 50 41  .c.......U...jPA
0010: 65 11 42 49                                        e.BI
]
]



*******************************************
*******************************************


别名: secomscrootca1 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
发布者: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
序列号: 0
有效期为 Tue Sep 30 12:20:49 CST 2003 至 Sat Sep 30 12:20:49 CST 2023
证书指纹:
	 MD5:  F1:BC:63:6A:54:E0:B5:27:F5:CD:E7:1A:E3:4D:6E:4A
	 SHA1: 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
	 SHA256: E7:5E:72:ED:9F:56:0E:EC:6E:B4:80:00:73:A4:3F:C3:AD:19:19:5A:39:22:82:01:78:95:97:4A:99:02:6B:6C
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A0 73 49 99 68 DC 85 5B   65 E3 9B 28 2F 57 9F BD  .sI.h..[e..(/W..
0010: 33 BC 07 48                                        3..H
]
]



*******************************************
*******************************************


别名: globalsignr2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
发布者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
序列号: 400000000010f8626e60d
有效期为 Fri Dec 15 16:00:00 CST 2006 至 Wed Dec 15 16:00:00 CST 2021
证书指纹:
	 MD5:  94:14:77:7E:3E:5E:FD:8F:30:BD:41:B0:CF:E7:D0:30
	 SHA1: 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE
	 SHA256: CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 9B E2 07 57 67 1C 1E C0   6A 06 DE 59 B4 9A 2D DF  ...Wg...j..Y..-.
0010: DC 19 86 2E                                        ....
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.globalsign.net/root-r2.crl]
]]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9B E2 07 57 67 1C 1E C0   6A 06 DE 59 B4 9A 2D DF  ...Wg...j..Y..-.
0010: DC 19 86 2E                                        ....
]
]



*******************************************
*******************************************


别名: identrustdstx3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DST Root CA X3, O=Digital Signature Trust Co.
发布者: CN=DST Root CA X3, O=Digital Signature Trust Co.
序列号: 44afb080d6a327ba893039862ef8406b
有效期为 Sun Oct 01 05:12:19 CST 2000 至 Thu Sep 30 22:01:15 CST 2021
证书指纹:
	 MD5:  41:03:52:DC:0F:F7:50:1B:16:F0:02:8E:BA:6F:45:C5
	 SHA1: DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
	 SHA256: 06:87:26:03:31:A7:24:03:D9:09:F1:05:E6:9B:CF:0D:32:E1:BD:24:93:FF:C6:D9:20:6D:11:BC:D6:77:07:39
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C4 A7 B1 A4 7B 2C 71 FA   DB E1 4B 90 75 FF C4 15  .....,q...K.u...
0010: 60 85 89 10                                        `...
]
]



*******************************************
*******************************************


别名: comodoeccca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=COMODO ECC Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
发布者: CN=COMODO ECC Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
序列号: 1f47afaa62007050544c019e9b63992a
有效期为 Thu Mar 06 08:00:00 CST 2008 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  7C:62:FF:74:9D:31:53:5E:68:4A:D5:78:AA:1E:BF:23
	 SHA1: 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11
	 SHA256: 17:93:92:7A:06:14:54:97:89:AD:CE:2F:8F:34:F7:F0:B6:6D:0F:3A:E3:A3:B8:4D:21:EC:15:DB:BA:4F:AD:C7
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 75 71 A7 19 48 19 BC 9D   9D EA 41 47 DF 94 C4 48  uq..H.....AG...H
0010: 77 99 D3 79                                        w..y
]
]



*******************************************
*******************************************


别名: globalsignrootcar6 [jdk]
创建日期: 2019-1-31
条目类型: trustedCertEntry

所有者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6
发布者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6
序列号: 45e6bb038333c3856548e6ff4551
有效期为 Wed Dec 10 08:00:00 CST 2014 至 Sun Dec 10 08:00:00 CST 2034
证书指纹:
	 MD5:  4F:DD:07:E4:D4:22:64:39:1E:0C:37:42:EA:D1:C6:AE
	 SHA1: 80:94:64:0E:B5:A7:A1:CA:11:9C:1F:DD:D5:9F:81:02:63:A7:FB:D1
	 SHA256: 2C:AB:EA:FE:37:D0:6C:A2:2A:BA:73:91:C0:03:3D:25:98:29:52:C4:53:64:73:49:76:3A:3A:B5:AD:6C:CF:69
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: AE 6C 05 A3 93 13 E2 A2   E7 E2 D7 1C D6 C7 F0 7F  .l..............
0010: C8 67 53 A0                                        .gS.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AE 6C 05 A3 93 13 E2 A2   E7 E2 D7 1C D6 C7 F0 7F  .l..............
0010: C8 67 53 A0                                        .gS.
]
]



*******************************************
*******************************************


别名: entrust2048ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
发布者: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
序列号: 3863def8
有效期为 Sat Dec 25 01:50:51 CST 1999 至 Tue Jul 24 22:15:12 CST 2029
证书指纹:
	 MD5:  EE:29:31:BC:32:7E:9A:E6:E8:B5:F7:51:B4:34:71:90
	 SHA1: 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
	 SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 55 E4 81 D1 11 80 BE D8   89 B9 08 A3 31 F9 A1 24  U...........1..$
0010: 09 16 B9 70                                        ...p
]
]



*******************************************
*******************************************


别名: addtrustexternalca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE
发布者: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE
序列号: 1
有效期为 Tue May 30 18:48:38 CST 2000 至 Sat May 30 18:48:38 CST 2020
证书指纹:
	 MD5:  1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F
	 SHA1: 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68
	 SHA256: 68:7F:A4:51:38:22:78:FF:F0:C8:B1:1F:8D:43:D5:76:67:1C:6E:B2:BC:EA:B4:13:FB:83:D9:65:D0:6D:2F:F2
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: AD BD 98 7A 34 B4 26 F7   FA C4 26 54 EF 03 BD E0  ...z4.&...&T....
0010: 24 CB 54 1A                                        $.T.
]
[CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE]
SerialNumber: [    01]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AD BD 98 7A 34 B4 26 F7   FA C4 26 54 EF 03 BD E0  ...z4.&...&T....
0010: 24 CB 54 1A                                        $.T.
]
]



*******************************************
*******************************************


别名: globalsigneccrootcar4 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R4
发布者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R4
序列号: 2a38a41c960a04de42b228a50be8349802
有效期为 Tue Nov 13 08:00:00 CST 2012 至 Tue Jan 19 11:14:07 CST 2038
证书指纹:
	 MD5:  20:F0:27:68:D1:7E:A0:9D:0E:E6:2A:CA:DF:5C:89:8E
	 SHA1: 69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB
	 SHA256: BE:C9:49:11:C2:95:56:76:DB:6C:0A:55:09:86:D7:6E:3B:A0:05:66:7C:44:2C:97:62:B4:FB:B7:73:DE:22:8C
签名算法名称: SHA256withECDSA
主体公共密钥算法: 256 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 54 B0 7B AD 45 B8 E2 40   7F FB 0A 6E FB BE 33 C9  T...E..@...n..3.
0010: 3C A3 84 D5                                        <...
]
]



*******************************************
*******************************************


别名: usertrustrsaca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
发布者: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
序列号: 1fd6d30fca3ca51a81bbc640e35032d
有效期为 Mon Feb 01 08:00:00 CST 2010 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  1B:FE:69:D1:91:B7:19:33:A3:72:A8:0F:E1:55:E5:B5
	 SHA1: 2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E
	 SHA256: E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 53 79 BF 5A AA 2B 4A CF   54 80 E1 D8 9B C0 9D F2  Sy.Z.+J.T.......
0010: B2 03 66 CB                                        ..f.
]
]



*******************************************
*******************************************


别名: digicertassuredidrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: ce7e0e517d846fe8fe560fc1bf03039
有效期为 Fri Nov 10 08:00:00 CST 2006 至 Mon Nov 10 08:00:00 CST 2031
证书指纹:
	 MD5:  87:CE:0B:7B:2A:0E:49:00:E1:58:71:9B:37:A8:93:72
	 SHA1: 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
	 SHA256: 3E:90:99:B5:01:5E:8F:48:6C:00:BC:EA:9D:11:1E:E7:21:FA:BA:35:5A:89:BC:F1:DF:69:56:1E:3D:C6:32:5C
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 45 EB A2 AF F4 92 CB 82   31 2D 51 8B A7 A7 21 9D  E.......1-Q...!.
0010: F3 6D C8 0F                                        .m..
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 45 EB A2 AF F4 92 CB 82   31 2D 51 8B A7 A7 21 9D  E.......1-Q...!.
0010: F3 6D C8 0F                                        .m..
]
]



*******************************************
*******************************************


别名: digicertglobalrootg2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: 33af1e6a711a9a0bb2864b11d09fae5
有效期为 Thu Aug 01 20:00:00 CST 2013 至 Fri Jan 15 20:00:00 CST 2038
证书指纹:
	 MD5:  E4:A6:8A:C8:54:AC:52:42:46:0A:FD:72:48:1B:2A:44
	 SHA1: DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4
	 SHA256: CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4E 22 54 20 18 95 E6 E3   6E E6 0F FA FA B9 12 ED  N"T ....n.......
0010: 06 17 8F 39                                        ...9
]
]



*******************************************
*******************************************


别名: actalisauthenticationrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Actalis Authentication Root CA, O=Actalis S.p.A./03358520967, L=Milan, C=IT
发布者: CN=Actalis Authentication Root CA, O=Actalis S.p.A./03358520967, L=Milan, C=IT
序列号: 570a119742c4e3cc
有效期为 Thu Sep 22 19:22:02 CST 2011 至 Sun Sep 22 19:22:02 CST 2030
证书指纹:
	 MD5:  69:C1:0D:4F:07:A3:1B:C3:FE:56:3D:04:BC:11:F6:A6
	 SHA1: F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
	 SHA256: 55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 52 D8 88 3A C8 9F 78 66   ED 89 F3 7B 38 70 94 C9  R..:..xf....8p..
0010: 02 02 36 D0                                        ..6.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 52 D8 88 3A C8 9F 78 66   ED 89 F3 7B 38 70 94 C9  R..:..xf....8p..
0010: 02 02 36 D0                                        ..6.
]
]



*******************************************
*******************************************


别名: digicertassuredidg2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Assured ID Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Assured ID Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: b931c3ad63967ea6723bfc3af9af44b
有效期为 Thu Aug 01 20:00:00 CST 2013 至 Fri Jan 15 20:00:00 CST 2038
证书指纹:
	 MD5:  92:38:B9:F8:63:24:82:65:2C:57:33:E6:FE:81:8F:9D
	 SHA1: A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F
	 SHA256: 7D:05:EB:B6:82:33:9F:8C:94:51:EE:09:4E:EB:FE:FA:79:53:A1:14:ED:B2:F4:49:49:45:2F:AB:7D:2F:C1:85
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: CE C3 4A B9 99 55 F2 B8   DB 60 BF A9 7E BD 56 B5  ..J..U...`....V.
0010: 97 36 A7 D6                                        .6..
]
]



*******************************************
*******************************************


别名: amazonrootca4 [jdk]
创建日期: 2019-12-6
条目类型: trustedCertEntry

所有者: CN=Amazon Root CA 4, O=Amazon, C=US
发布者: CN=Amazon Root CA 4, O=Amazon, C=US
序列号: 66c9fd7c1bb104c2943e5717b7b2cc81ac10e
有效期为 Tue May 26 08:00:00 CST 2015 至 Sat May 26 08:00:00 CST 2040
证书指纹:
	 MD5:  89:BC:27:D5:EB:17:8D:06:6A:69:D5:FD:89:47:B4:CD
	 SHA1: F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE
	 SHA256: E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: D3 EC C7 3A 65 6E CC E1   DA 76 9A 56 FB 9C F3 86  ...:en...v.V....
0010: 6D 57 E5 81                                        mW..
]
]



*******************************************
*******************************************


别名: swisssigngoldg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=SwissSign Gold CA - G2, O=SwissSign AG, C=CH
发布者: CN=SwissSign Gold CA - G2, O=SwissSign AG, C=CH
序列号: bb401c43f55e4fb0
有效期为 Wed Oct 25 16:30:35 CST 2006 至 Sat Oct 25 16:30:35 CST 2036
证书指纹:
	 MD5:  24:77:D9:A8:91:D1:3B:FA:88:2D:C2:FF:F8:CD:33:93
	 SHA1: D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61
	 SHA256: 62:DD:0B:E9:B9:F5:0A:16:3E:A0:F8:E7:5C:05:3B:1E:CA:57:EA:55:C8:68:8F:64:7C:68:81:F2:C8:35:7B:95
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 5B 25 7B 96 A4 65 51 7E   B8 39 F3 C0 78 66 5E E8  [%...eQ..9..xf^.
0010: 3A E7 F0 EE                                        :...
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.16.756.1.89.1.2.1.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 20 68 74 74 70 3A 2F   2F 72 65 70 6F 73 69 74  . http://reposit
0010: 6F 72 79 2E 73 77 69 73   73 73 69 67 6E 2E 63 6F  ory.swisssign.co
0020: 6D 2F                                              m/

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 5B 25 7B 96 A4 65 51 7E   B8 39 F3 C0 78 66 5E E8  [%...eQ..9..xf^.
0010: 3A E7 F0 EE                                        :...
]
]



*******************************************
*******************************************


别名: entrustrootcag2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
发布者: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
序列号: 4a538c28
有效期为 Wed Jul 08 01:25:54 CST 2009 至 Sun Dec 08 01:55:54 CST 2030
证书指纹:
	 MD5:  4B:E2:C9:91:96:65:0C:F4:0E:5A:93:92:A0:0A:FE:B2
	 SHA1: 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
	 SHA256: 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 6A 72 26 7A D0 1E EF 7D   E7 3B 69 51 D4 6C 8D 9F  jr&z.....;iQ.l..
0010: 90 12 66 AB                                        ..f.
]
]



*******************************************
*******************************************


别名: quovadisrootca2g3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root CA 2 G3, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root CA 2 G3, O=QuoVadis Limited, C=BM
序列号: 445734245b81899b35f2ceb82b3b5ba726f07528
有效期为 Fri Jan 13 02:59:32 CST 2012 至 Mon Jan 13 02:59:32 CST 2042
证书指纹:
	 MD5:  AF:0C:86:6E:BF:40:2D:7F:0B:3E:12:50:BA:12:3D:06
	 SHA1: 09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36
	 SHA256: 8F:E4:FB:0A:F9:3A:4D:0D:67:DB:0B:EB:B2:3E:37:C7:1B:F3:25:DC:BC:DD:24:0E:A0:4D:AF:58:B4:7E:18:40
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: ED E7 6F 76 5A BF 60 EC   49 5B C6 A5 77 BB 72 16  ..ovZ.`.I[..w.r.
0010: 71 9B C4 3D                                        q..=
]
]



*******************************************
*******************************************


别名: securetrustca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=SecureTrust CA, O=SecureTrust Corporation, C=US
发布者: CN=SecureTrust CA, O=SecureTrust Corporation, C=US
序列号: cf08e5c0816a5ad427ff0eb271859d0
有效期为 Wed Nov 08 03:31:18 CST 2006 至 Tue Jan 01 03:40:55 CST 2030
证书指纹:
	 MD5:  DC:32:C3:A7:6D:25:57:C7:68:09:9D:EA:2D:A9:A2:D1
	 SHA1: 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
	 SHA256: F1:C1:B5:0A:E5:A2:0D:D8:03:0E:C9:F6:BC:24:82:3D:D3:67:B5:25:57:59:B4:E7:1B:61:FC:E9:F7:37:5D:73
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.4.1.311.20.2 Criticality=false
0000: 1E 04 00 43 00 41                                  ...C.A


#2: ObjectId: 1.3.6.1.4.1.311.21.1 Criticality=false
0000: 02 01 00                                           ...


#3: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#4: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.securetrust.com/STCA.crl]
]]

#5: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#6: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 42 32 B6 16 FA 04 FD FE   5D 4B 7A C3 FD F7 4C 40  B2......]Kz...L@
0010: 1D 5A 43 AF                                        .ZC.
]
]



*******************************************
*******************************************


别名: camerfirmachambersca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
发布者: CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
序列号: a3da427ea4b1aeda
有效期为 Fri Aug 01 20:29:50 CST 2008 至 Sat Jul 31 20:29:50 CST 2038
证书指纹:
	 MD5:  5E:80:9E:84:5A:0E:65:0B:17:02:F3:55:18:2A:3E:D7
	 SHA1: 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
	 SHA256: 06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: F9 24 AC 0F B2 B5 F8 79   C0 FA 60 88 1B C4 D9 4D  .$.....y..`....M
0010: 02 9E 17 19                                        ....
]
[CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU]
SerialNumber: [    a3da427e a4b1aeda]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:12
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.5.29.32.0]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1C 68 74 74 70 3A 2F   2F 70 6F 6C 69 63 79 2E  ..http://policy.
0010: 63 61 6D 65 72 66 69 72   6D 61 2E 63 6F 6D        camerfirma.com

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F9 24 AC 0F B2 B5 F8 79   C0 FA 60 88 1B C4 D9 4D  .$.....y..`....M
0010: 02 9E 17 19                                        ....
]
]



*******************************************
*******************************************


别名: geotrustprimaryca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US
发布者: CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US
序列号: 18acb56afd69b6153a636cafdafac4a1
有效期为 Mon Nov 27 08:00:00 CST 2006 至 Thu Jul 17 07:59:59 CST 2036
证书指纹:
	 MD5:  02:26:C3:01:5E:08:30:37:43:A9:D0:7D:CF:37:E6:BF
	 SHA1: 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96
	 SHA256: 37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 2C D5 50 41 97 15 8B F0   8F 36 61 5B 4A FB 6B D9  ,.PA.....6a[J.k.
0010: 99 C9 33 92                                        ..3.
]
]



*******************************************
*******************************************


别名: identrustcommercial [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=IdenTrust Commercial Root CA 1, O=IdenTrust, C=US
发布者: CN=IdenTrust Commercial Root CA 1, O=IdenTrust, C=US
序列号: a0142800000014523c844b500000002
有效期为 Fri Jan 17 02:12:23 CST 2014 至 Tue Jan 17 02:12:23 CST 2034
证书指纹:
	 MD5:  B3:3E:77:73:75:EE:A0:D3:E3:7E:49:63:49:59:BB:C7
	 SHA1: DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25
	 SHA256: 5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: ED 44 19 C0 D3 F0 06 8B   EE A4 7B BE 42 E7 26 54  .D..........B.&T
0010: C8 8E 36 76                                        ..6v
]
]



*******************************************
*******************************************


别名: thawteprimaryrootcag3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
发布者: CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
序列号: 600197b746a7eab4b49ad64b2ff790fb
有效期为 Wed Apr 02 08:00:00 CST 2008 至 Wed Dec 02 07:59:59 CST 2037
证书指纹:
	 MD5:  FB:1B:5D:43:8A:94:CD:44:C6:76:F2:43:4B:47:E7:31
	 SHA1: F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2
	 SHA256: 4B:03:F4:58:07:AD:70:F2:1B:FC:2C:AE:71:C9:FD:E4:60:4C:06:4C:F5:FF:B6:86:BA:E5:DB:AA:D7:FD:D3:4C
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AD 6C AA 94 60 9C ED E4   FF FA 3E 0A 74 2B 63 03  .l..`.....>.t+c.
0010: F7 B6 59 BF                                        ..Y.
]
]



*******************************************
*******************************************


别名: buypassclass3ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Buypass Class 3 Root CA, O=Buypass AS-983163327, C=NO
发布者: CN=Buypass Class 3 Root CA, O=Buypass AS-983163327, C=NO
序列号: 2
有效期为 Tue Oct 26 16:28:58 CST 2010 至 Fri Oct 26 16:28:58 CST 2040
证书指纹:
	 MD5:  3D:3B:18:9E:2C:64:5A:E8:D5:88:CE:0E:F9:37:C2:EC
	 SHA1: DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
	 SHA256: ED:F7:EB:BC:A2:7A:2A:38:4D:38:7B:7D:40:10:C6:66:E2:ED:B4:84:3E:4C:29:B4:AE:1D:5B:93:32:E6:B2:4D
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 47 B8 CD FF E5 6F EE F8   B2 EC 2F 4E 0E F9 25 B0  G....o..../N..%.
0010: 8E 3C 6B C3                                        .<k.
]
]



*******************************************
*******************************************


别名: verisigntsaca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
发布者: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
序列号: 67c8e1e8e3be1cbdfc913b8ea6238749
有效期为 Wed Jan 01 08:00:00 CST 1997 至 Sat Jan 02 07:59:59 CST 2021
证书指纹:
	 MD5:  F2:89:95:6E:4D:05:F0:F1:A7:21:55:7D:46:11:BA:47
	 SHA1: 20:CE:B1:F0:F5:1C:0E:19:A9:F3:8D:B1:AA:8E:03:8C:AA:7A:C7:01
	 SHA256: CB:6B:05:D9:E8:E5:7C:D8:82:B1:0B:4D:B7:0D:E4:BB:1D:E4:2B:A4:8A:7B:D0:31:8B:63:5B:F6:E7:78:1A:9D
签名算法名称: SHA1withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]



*******************************************
*******************************************


别名: verisignclass3g4ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
发布者: CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
序列号: 2f80fe238c0e220f486712289187acb3
有效期为 Mon Nov 05 08:00:00 CST 2007 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  3A:52:E1:E7:FD:6F:3A:E3:6F:F3:6F:99:1B:F9:22:41
	 SHA1: 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
	 SHA256: 69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60:32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false
0000: 30 5F A1 5D A0 5B 30 59   30 57 30 55 16 09 69 6D  0_.].[0Y0W0U..im
0010: 61 67 65 2F 67 69 66 30   21 30 1F 30 07 06 05 2B  age/gif0!0.0...+
0020: 0E 03 02 1A 04 14 8F E5   D3 1A 86 AC 8D 8E 6B C3  ..............k.
0030: CF 80 6A D4 48 18 2C 7B   19 2E 30 25 16 23 68 74  ..j.H.,...0%.#ht
0040: 74 70 3A 2F 2F 6C 6F 67   6F 2E 76 65 72 69 73 69  tp://logo.verisi
0050: 67 6E 2E 63 6F 6D 2F 76   73 6C 6F 67 6F 2E 67 69  gn.com/vslogo.gi
0060: 66                                                 f


#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B3 16 91 FD EE A6 6E E4   B5 2E 49 8F 87 78 81 80  ......n...I..x..
0010: EC E5 B1 B5                                        ....
]
]



*******************************************
*******************************************


别名: baltimorecybertrustca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
发布者: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
序列号: 20000b9
有效期为 Sat May 13 02:46:00 CST 2000 至 Tue May 13 07:59:00 CST 2025
证书指纹:
	 MD5:  AC:B6:94:A5:9C:17:E0:D7:91:52:9B:B1:97:06:A6:E4
	 SHA1: D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
	 SHA256: 16:AF:57:A9:F6:76:B0:AB:12:60:95:AA:5E:BA:DE:F2:2A:B3:11:19:D6:44:AC:95:CD:4B:93:DB:F3:F2:6A:EB
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:3
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E5 9D 59 30 82 47 58 CC   AC FA 08 54 36 86 7B 3A  ..Y0.GX....T6..:
0010: B5 04 4D F0                                        ..M.
]
]



*******************************************
*******************************************


别名: gtecybertrustglobalca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
发布者: CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
序列号: 1a5
有效期为 Thu Aug 13 08:29:00 CST 1998 至 Tue Aug 14 07:59:00 CST 2018
证书指纹:
	 MD5:  CA:3D:D3:68:F1:03:5C:D0:32:FA:B8:2B:59:E8:5A:DB
	 SHA1: 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74
	 SHA256: A5:31:25:18:8D:21:10:AA:96:4B:02:C7:B7:C6:DA:32:03:17:08:94:E5:FB:71:FF:FB:66:67:D5:E6:81:0A:36
签名算法名称: MD5withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 1


*******************************************
*******************************************


别名: luxtrustglobalrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU
发布者: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU
序列号: bb8
有效期为 Thu Mar 17 17:51:37 CST 2011 至 Wed Mar 17 17:51:37 CST 2021
证书指纹:
	 MD5:  42:A5:21:7A:4C:AF:C7:BF:FD:A7:F5:B2:10:4C:3E:BE
	 SHA1: C9:3C:34:EA:90:D9:13:0C:0F:03:00:4B:98:BD:8B:35:70:91:56:11
	 SHA256: A1:B2:DB:EB:64:E7:06:C6:16:9E:3C:41:18:B2:3B:AA:09:01:8A:84:27:66:6D:8B:F0:E2:88:91:EC:05:19:50
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 17 15 85 89 09 2F 24 87   6F 3F 1D 1B E4 F2 96 79  ...../$.o?.....y
0010: 83 48 13 CE                                        .H..
]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 17 15 85 89 09 2F 24 87   6F 3F 1D 1B E4 F2 96 79  ...../$.o?.....y
0010: 83 48 13 CE                                        .H..
]
]



*******************************************
*******************************************


别名: verisignclass3g2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
发布者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
序列号: 7dd9fe07cfa81eb7107967fba78934c6
有效期为 Mon May 18 08:00:00 CST 1998 至 Wed Aug 02 07:59:59 CST 2028
证书指纹:
	 MD5:  A2:33:9B:4C:74:78:73:D4:6C:E7:C1:F3:8D:CB:5C:E9
	 SHA1: 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F
	 SHA256: 83:CE:3C:12:29:68:8A:59:3D:48:5F:81:97:3C:0F:91:95:43:1E:DA:37:CC:5E:36:43:0E:79:C7:A8:88:63:8B
签名算法名称: SHA1withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 1


*******************************************
*******************************************


别名: camerfirmachamberscommerceca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU
发布者: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU
序列号: 0
有效期为 Wed Oct 01 00:13:43 CST 2003 至 Thu Oct 01 00:13:44 CST 2037
证书指纹:
	 MD5:  B0:01:EE:14:D9:AF:29:18:94:76:8E:F1:69:33:2A:84
	 SHA1: 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1
	 SHA256: 0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:12
]

#2: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.chambersign.org/chambersroot.crl]
]]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.3.6.1.4.1.17326.10.3.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 30 68 74 74 70 3A 2F   2F 63 70 73 2E 63 68 61  .0http://cps.cha
0010: 6D 62 65 72 73 69 67 6E   2E 6F 72 67 2F 63 70 73  mbersign.org/cps
0020: 2F 63 68 61 6D 62 65 72   73 72 6F 6F 74 2E 68 74  /chambersroot.ht
0030: 6D 6C                                              ml

]]  ]
]

#4: ObjectId: 2.5.29.18 Criticality=false
IssuerAlternativeName [
  RFC822Name: chambersroot@chambersign.org
]

#5: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#6: ObjectId: 2.16.840.1.113730.1.1 Criticality=false
NetscapeCertType [
   SSL CA
   S/MIME CA
   Object Signing CA]

#7: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  RFC822Name: chambersroot@chambersign.org
]

#8: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E3 94 F5 B1 4D E9 DB A1   29 5B 57 8B 4D 76 06 76  ....M...)[W.Mv.v
0010: E1 D1 A2 8A                                        ....
]
]



*******************************************
*******************************************


别名: soneraclass2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Sonera Class2 CA, O=Sonera, C=FI
发布者: CN=Sonera Class2 CA, O=Sonera, C=FI
序列号: 1d
有效期为 Fri Apr 06 15:29:40 CST 2001 至 Tue Apr 06 15:29:40 CST 2021
证书指纹:
	 MD5:  A3:EC:75:0F:2E:88:DF:FA:48:01:4E:0B:5C:48:6F:FB
	 SHA1: 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
	 SHA256: 79:08:B4:03:14:C1:38:10:0B:51:8D:07:35:80:7F:FB:FC:F8:51:8A:00:95:33:71:05:BA:38:6B:15:3D:D9:27
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4A A0 AA 58 84 D3 5E 3C                            J..X..^<
]
]



*******************************************
*******************************************


别名: affirmtrustnetworkingca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AffirmTrust Networking, O=AffirmTrust, C=US
发布者: CN=AffirmTrust Networking, O=AffirmTrust, C=US
序列号: 7c4f04391cd4992d
有效期为 Fri Jan 29 22:08:24 CST 2010 至 Tue Dec 31 22:08:24 CST 2030
证书指纹:
	 MD5:  42:65:CA:BE:01:9A:9A:4C:A9:8C:41:49:CD:C0:D5:7F
	 SHA1: 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
	 SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 07 1F D2 E7 9C DA C2 6E   A2 40 B4 B0 7A 50 10 50  .......n.@..zP.P
0010: 74 C4 C8 BD                                        t...
]
]



*******************************************
*******************************************


别名: ttelesecglobalrootclass3ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=T-TeleSec GlobalRoot Class 3, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
发布者: CN=T-TeleSec GlobalRoot Class 3, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
序列号: 1
有效期为 Wed Oct 01 18:29:56 CST 2008 至 Sun Oct 02 07:59:59 CST 2033
证书指纹:
	 MD5:  CA:FB:40:A8:4E:39:92:8A:1D:FE:8E:2F:C4:27:EA:EF
	 SHA1: 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
	 SHA256: FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B5 03 F7 76 3B 61 82 6A   12 AA 18 53 EB 03 21 94  ...v;a.j...S..!.
0010: BF FE CE CA                                        ....
]
]



*******************************************
*******************************************


别名: xrampglobalca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=XRamp Global Certification Authority, O=XRamp Security Services Inc, OU=www.xrampsecurity.com, C=US
发布者: CN=XRamp Global Certification Authority, O=XRamp Security Services Inc, OU=www.xrampsecurity.com, C=US
序列号: 50946cec18ead59c4dd597ef758fa0ad
有效期为 Tue Nov 02 01:14:04 CST 2004 至 Mon Jan 01 13:37:19 CST 2035
证书指纹:
	 MD5:  A1:0B:44:B3:CA:10:D8:00:6E:9D:0F:D8:0F:92:0A:D1
	 SHA1: B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
	 SHA256: CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.4.1.311.20.2 Criticality=false
0000: 1E 04 00 43 00 41                                  ...C.A


#2: ObjectId: 1.3.6.1.4.1.311.21.1 Criticality=false
0000: 02 01 01                                           ...


#3: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#4: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.xrampsecurity.com/XGCA.crl]
]]

#5: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#6: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C6 4F A2 3D 06 63 84 09   9C CE 62 E4 04 AC 8D 5C  .O.=.c....b....\
0010: B5 E9 B6 1B                                        ....
]
]



*******************************************
*******************************************


别名: geotrustprimarycag3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
发布者: CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
序列号: 15ac6e9419b2794b41f627a9c3180f1f
有效期为 Wed Apr 02 08:00:00 CST 2008 至 Wed Dec 02 07:59:59 CST 2037
证书指纹:
	 MD5:  B5:E8:34:36:C9:10:44:58:48:70:6D:2E:83:D4:B8:05
	 SHA1: 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD
	 SHA256: B4:78:B8:12:25:0D:F8:78:63:5C:2A:A7:EC:7D:15:5E:AA:62:5E:E8:29:16:E2:CD:29:43:61:88:6C:D1:FB:D4
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C4 79 CA 8E A1 4E 03 1D   1C DC 6B DB 31 5B 94 3E  .y...N....k.1[.>
0010: 3F 30 7F 2D                                        ?0.-
]
]



*******************************************
*******************************************


别名: camerfirmachambersignca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
发布者: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
序列号: c9cdd3e9d57d23ce
有效期为 Fri Aug 01 20:31:40 CST 2008 至 Sat Jul 31 20:31:40 CST 2038
证书指纹:
	 MD5:  9E:80:FF:78:01:0C:2E:C1:36:BD:FE:96:90:6E:08:F3
	 SHA1: 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
	 SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: B9 09 CA 9C 1E DB D3 6C   3A 6B AE ED 54 F1 5B 93  .......l:k..T.[.
0010: 06 35 2E 5E                                        .5.^
]
[CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU]
SerialNumber: [    c9cdd3e9 d57d23ce]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:12
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.5.29.32.0]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1C 68 74 74 70 3A 2F   2F 70 6F 6C 69 63 79 2E  ..http://policy.
0010: 63 61 6D 65 72 66 69 72   6D 61 2E 63 6F 6D        camerfirma.com

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B9 09 CA 9C 1E DB D3 6C   3A 6B AE ED 54 F1 5B 93  .......l:k..T.[.
0010: 06 35 2E 5E                                        .5.^
]
]



*******************************************
*******************************************


别名: thawteprimaryrootcag2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US
发布者: CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US
序列号: 35fc265cd9844fc93d263d579baed756
有效期为 Mon Nov 05 08:00:00 CST 2007 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  74:9D:EA:60:24:C4:FD:22:53:3E:CC:3A:72:D9:29:4F
	 SHA1: AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12
	 SHA256: A4:31:0D:50:AF:18:A6:44:71:90:37:2A:86:AF:AF:8B:95:1F:FB:43:1D:83:7F:1E:56:88:B4:59:71:ED:15:57
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9A D8 00 30 00 E7 6B 7F   85 18 EE 8B B6 CE 8A 0C  ...0..k.........
0010: F8 11 E1 BB                                        ....
]
]



*******************************************
*******************************************


别名: amazonrootca3 [jdk]
创建日期: 2019-12-6
条目类型: trustedCertEntry

所有者: CN=Amazon Root CA 3, O=Amazon, C=US
发布者: CN=Amazon Root CA 3, O=Amazon, C=US
序列号: 66c9fd5749736663f3b0b9ad9e89e7603f24a
有效期为 Tue May 26 08:00:00 CST 2015 至 Sat May 26 08:00:00 CST 2040
证书指纹:
	 MD5:  A0:D4:EF:0B:F7:B5:D8:49:95:2A:EC:F5:C4:FC:81:87
	 SHA1: 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E
	 SHA256: 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4
签名算法名称: SHA256withECDSA
主体公共密钥算法: 256 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AB B6 DB D7 06 9E 37 AC   30 86 07 91 70 C7 9C C4  ......7.0...p...
0010: 19 B1 78 C0                                        ..x.
]
]



*******************************************
*******************************************


别名: usertrusteccca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=USERTrust ECC Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
发布者: CN=USERTrust ECC Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
序列号: 5c8b99c55a94c5d27156decd8980cc26
有效期为 Mon Feb 01 08:00:00 CST 2010 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  FA:68:BC:D9:B5:7F:AD:FD:C9:1D:06:83:28:CC:24:C1
	 SHA1: D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0
	 SHA256: 4F:F4:60:D5:4B:9C:86:DA:BF:BC:FC:57:12:E0:40:0D:2B:ED:3F:BC:4D:4F:BD:AA:86:E0:6A:DC:D2:A9:AD:7A
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 3A E1 09 86 D4 CF 19 C2   96 76 74 49 76 DC E0 35  :........vtIv..5
0010: C6 63 63 9A                                        .cc.
]
]



*******************************************
*******************************************


别名: swisssignsilverg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=SwissSign Silver CA - G2, O=SwissSign AG, C=CH
发布者: CN=SwissSign Silver CA - G2, O=SwissSign AG, C=CH
序列号: 4f1bd42f54bb2f4b
有效期为 Wed Oct 25 16:32:46 CST 2006 至 Sat Oct 25 16:32:46 CST 2036
证书指纹:
	 MD5:  E0:06:A1:C9:7D:CF:C9:FC:0D:C0:56:75:96:D8:62:13
	 SHA1: 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB
	 SHA256: BE:6C:4D:A2:BB:B9:BA:59:B6:F3:93:97:68:37:42:46:C3:C0:05:99:3F:A9:8F:02:0D:1D:ED:BE:D4:8A:81:D5
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 17 A0 CD C1 E4 41 B6 3A   5B 3B CB 45 9D BD 1C C2  .....A.:[;.E....
0010: 98 FA 86 58                                        ...X
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.16.756.1.89.1.3.1.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 20 68 74 74 70 3A 2F   2F 72 65 70 6F 73 69 74  . http://reposit
0010: 6F 72 79 2E 73 77 69 73   73 73 69 67 6E 2E 63 6F  ory.swisssign.co
0020: 6D 2F                                              m/

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 17 A0 CD C1 E4 41 B6 3A   5B 3B CB 45 9D BD 1C C2  .....A.:[;.E....
0010: 98 FA 86 58                                        ...X
]
]



*******************************************
*******************************************


别名: affirmtrustpremiumca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AffirmTrust Premium, O=AffirmTrust, C=US
发布者: CN=AffirmTrust Premium, O=AffirmTrust, C=US
序列号: 6d8c1446b1a60aee
有效期为 Fri Jan 29 22:10:36 CST 2010 至 Mon Dec 31 22:10:36 CST 2040
证书指纹:
	 MD5:  C4:5D:0E:48:B6:AC:28:30:4E:0A:BC:F9:38:16:87:57
	 SHA1: D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
	 SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9D C0 67 A6 0C 22 D9 26   F5 45 AB A6 65 52 11 27  ..g..".&.E..eR.'
0010: D8 45 AC 63                                        .E.c
]
]



*******************************************
*******************************************


别名: globalsignca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE
发布者: CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE
序列号: 40000000001154b5ac394
有效期为 Tue Sep 01 20:00:00 CST 1998 至 Fri Jan 28 20:00:00 CST 2028
证书指纹:
	 MD5:  3E:45:52:15:09:51:92:E1:B7:5D:37:9F:B1:87:29:8A
	 SHA1: B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
	 SHA256: EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 60 7B 66 1A 45 0D 97 CA   89 50 2F 7D 04 CD 34 A8  `.f.E....P/...4.
0010: FF FC FD 4B                                        ...K
]
]



*******************************************
*******************************************


别名: dtrustclass3ca2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=D-TRUST Root Class 3 CA 2 2009, O=D-Trust GmbH, C=DE
发布者: CN=D-TRUST Root Class 3 CA 2 2009, O=D-Trust GmbH, C=DE
序列号: 983f3
有效期为 Thu Nov 05 16:35:58 CST 2009 至 Mon Nov 05 16:35:58 CST 2029
证书指纹:
	 MD5:  CD:E0:25:69:8D:47:AC:9C:89:35:90:F7:FD:51:3D:2F
	 SHA1: 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0
	 SHA256: 49:E7:A4:42:AC:F0:EA:62:87:05:00:54:B5:25:64:B6:50:E4:F4:9E:42:E3:48:D6:AA:38:E0:39:E9:57:B1:C1
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist]
, DistributionPoint:
     [URIName: http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_2009.crl]
]]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: FD DA 14 C4 9F 30 DE 21   BD 1E 42 39 FC AB 63 23  .....0.!..B9..c#
0010: 49 E0 F1 84                                        I...
]
]



*******************************************
*******************************************


别名: affirmtrustcommercialca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AffirmTrust Commercial, O=AffirmTrust, C=US
发布者: CN=AffirmTrust Commercial, O=AffirmTrust, C=US
序列号: 7777062726a9b17c
有效期为 Fri Jan 29 22:06:06 CST 2010 至 Tue Dec 31 22:06:06 CST 2030
证书指纹:
	 MD5:  82:92:BA:5B:EF:CD:8A:6F:A6:3D:55:F9:84:F6:D6:B7
	 SHA1: F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
	 SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9D 93 C6 53 8B 5E CA AF   3F 9F 1E 0F E5 99 95 BC  ...S.^..?.......
0010: 24 F6 94 8F                                        $...
]
]



*******************************************
*******************************************


别名: letsencryptisrgx1 [jdk]
创建日期: 2017-5-19
条目类型: trustedCertEntry

所有者: CN=ISRG Root X1, O=Internet Security Research Group, C=US
发布者: CN=ISRG Root X1, O=Internet Security Research Group, C=US
序列号: 8210cfb0d240e3594463e0bb63828b00
有效期为 Thu Jun 04 19:04:38 CST 2015 至 Mon Jun 04 19:04:38 CST 2035
证书指纹:
	 MD5:  0C:D2:F9:E0:DA:17:73:E9:ED:86:4D:A5:E3:70:E7:4E
	 SHA1: CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8
	 SHA256: 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 79 B4 59 E6 7B B6 E5 E4   01 73 80 08 88 C8 1A 58  y.Y......s.....X
0010: F6 E9 9B 6E                                        ...n
]
]



*******************************************
*******************************************


别名: thawtepremiumserverca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
发布者: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
序列号: 36122296c5e338a520a1d25f4cd70954
有效期为 Thu Aug 01 08:00:00 CST 1996 至 Sat Jan 02 07:59:59 CST 2021
证书指纹:
	 MD5:  A6:6B:60:90:23:9B:3F:2D:BB:98:6F:D6:A7:19:0D:46
	 SHA1: E0:AB:05:94:20:72:54:93:05:60:62:02:36:70:F7:CD:2E:FC:66:66
	 SHA256: 3F:9F:27:D5:83:20:4B:9E:09:C8:A3:D2:06:6C:4B:57:D3:A2:47:9C:36:93:65:08:80:50:56:98:10:5D:BC:E9
签名算法名称: SHA1withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]



*******************************************
*******************************************


别名: comodoaaaca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AAA Certificate Services, O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB
发布者: CN=AAA Certificate Services, O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB
序列号: 1
有效期为 Thu Jan 01 08:00:00 CST 2004 至 Mon Jan 01 07:59:59 CST 2029
证书指纹:
	 MD5:  49:79:04:B0:EB:87:19:AC:47:B0:BC:11:51:9B:74:D0
	 SHA1: D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
	 SHA256: D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl.comodoca.com/AAACertificateServices.crl]
, DistributionPoint:
     [URIName: http://crl.comodo.net/AAACertificateServices.crl]
]]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A0 11 0A 23 3E 96 F1 07   EC E2 AF 29 EF 82 A5 7F  ...#>......)....
0010: D0 30 A4 B4                                        .0..
]
]



*******************************************
*******************************************


别名: geotrustprimarycag2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
发布者: CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
序列号: 3cb2f4480a00e2feeb243b5e603ec36b
有效期为 Mon Nov 05 08:00:00 CST 2007 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  01:5E:D8:6B:BD:6F:3D:8E:A1:31:F8:12:E0:98:73:6A
	 SHA1: 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
	 SHA256: 5E:DB:7A:C4:3B:82:A0:6A:87:61:E8:D7:BE:49:79:EB:F2:61:1F:7D:D7:9B:F9:1C:1C:6B:56:6A:21:9E:D7:66
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 15 5F 35 57 51 55 FB 25   B2 AD 03 69 FC 01 A3 FA  ._5WQU.%...i....
0010: BE 11 55 D5                                        ..U.
]
]



*******************************************
*******************************************


别名: globalsignr3ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
发布者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
序列号: 4000000000121585308a2
有效期为 Wed Mar 18 18:00:00 CST 2009 至 Sun Mar 18 18:00:00 CST 2029
证书指纹:
	 MD5:  C5:DF:B8:49:CA:05:13:55:EE:2D:BA:1A:C3:3E:B0:28
	 SHA1: D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
	 SHA256: CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 8F F0 4B 7F A8 2E 45 24   AE 4D 50 FA 63 9A 8B DE  ..K...E$.MP.c...
0010: E2 DD 1B BC                                        ....
]
]



*******************************************
*******************************************


别名: thawteprimaryrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
发布者: CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
序列号: 344ed55720d5edec49f42fce37db2b6d
有效期为 Fri Nov 17 08:00:00 CST 2006 至 Thu Jul 17 07:59:59 CST 2036
证书指纹:
	 MD5:  8C:CA:DC:0B:22:CE:F5:BE:72:AC:41:1A:11:A8:D8:12
	 SHA1: 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81
	 SHA256: 8D:72:2F:81:A9:C1:13:C0:79:1D:F1:36:A2:96:6D:B2:6C:95:0A:97:1D:B4:6B:41:99:F4:EA:54:B7:8B:FB:9F
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 7B 5B 45 CF AF CE CB 7A   FD 31 92 1A 6A B6 F3 46  .[E....z.1..j..F
0010: EB 57 48 50                                        .WHP
]
]



*******************************************
*******************************************


别名: quovadisrootca3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root CA 3, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root CA 3, O=QuoVadis Limited, C=BM
序列号: 5c6
有效期为 Sat Nov 25 03:11:23 CST 2006 至 Tue Nov 25 03:06:44 CST 2031
证书指纹:
	 MD5:  31:85:3C:62:94:97:63:B9:AA:FD:89:4E:AF:6F:E0:CF
	 SHA1: 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85
	 SHA256: 18:F1:FC:7F:20:5D:F8:AD:DD:EB:7F:E0:07:DD:57:E3:AF:37:5A:9C:4D:8D:73:54:6B:F4:F1:FE:D1:E1:8D:35
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: F2 C0 13 E0 82 43 3E FB   EE 2F 67 32 96 35 5C DB  .....C>../g2.5\.
0010: B8 CB 02 D0                                        ....
]
[CN=QuoVadis Root CA 3, O=QuoVadis Limited, C=BM]
SerialNumber: [    05c6]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.3.6.1.4.1.8024.0.3]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.2
  qualifier: 0000: 30 81 86 1A 81 83 41 6E   79 20 75 73 65 20 6F 66  0.....Any use of
0010: 20 74 68 69 73 20 43 65   72 74 69 66 69 63 61 74   this Certificat
0020: 65 20 63 6F 6E 73 74 69   74 75 74 65 73 20 61 63  e constitutes ac
0030: 63 65 70 74 61 6E 63 65   20 6F 66 20 74 68 65 20  ceptance of the 
0040: 51 75 6F 56 61 64 69 73   20 52 6F 6F 74 20 43 41  QuoVadis Root CA
0050: 20 33 20 43 65 72 74 69   66 69 63 61 74 65 20 50   3 Certificate P
0060: 6F 6C 69 63 79 20 2F 20   43 65 72 74 69 66 69 63  olicy / Certific
0070: 61 74 69 6F 6E 20 50 72   61 63 74 69 63 65 20 53  ation Practice S
0080: 74 61 74 65 6D 65 6E 74   2E                       tatement.

], PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 21 68 74 74 70 3A 2F   2F 77 77 77 2E 71 75 6F  .!http://www.quo
0010: 76 61 64 69 73 67 6C 6F   62 61 6C 2E 63 6F 6D 2F  vadisglobal.com/
0020: 63 70 73                                           cps

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F2 C0 13 E0 82 43 3E FB   EE 2F 67 32 96 35 5C DB  .....C>../g2.5\.
0010: B8 CB 02 D0                                        ....
]
]



*******************************************
*******************************************


别名: amazonrootca2 [jdk]
创建日期: 2019-12-6
条目类型: trustedCertEntry

所有者: CN=Amazon Root CA 2, O=Amazon, C=US
发布者: CN=Amazon Root CA 2, O=Amazon, C=US
序列号: 66c9fd29635869f0a0fe58678f85b26bb8a37
有效期为 Tue May 26 08:00:00 CST 2015 至 Sat May 26 08:00:00 CST 2040
证书指纹:
	 MD5:  C8:E5:8D:CE:A8:42:E2:7A:C0:2A:5C:7C:9E:26:BF:66
	 SHA1: 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A
	 SHA256: 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B0 0C F0 4C 30 F4 05 58   02 48 FD 33 E5 52 AF 4B  ...L0..X.H.3.R.K
0010: 84 E3 66 52                                        ..fR
]
]



*******************************************
*******************************************


别名: starfieldclass2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US
发布者: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US
序列号: 0
有效期为 Wed Jun 30 01:39:16 CST 2004 至 Fri Jun 30 01:39:16 CST 2034
证书指纹:
	 MD5:  32:4A:4B:BB:C8:63:69:9B:BE:74:9A:C6:DD:1D:46:24
	 SHA1: AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
	 SHA256: 14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: BF 5F B7 D1 CE DD 1F 86   F4 5B 55 AC DC D7 10 C2  ._.......[U.....
0010: 0E A9 88 E7                                        ....
]
[OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US]
SerialNumber: [    00]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: BF 5F B7 D1 CE DD 1F 86   F4 5B 55 AC DC D7 10 C2  ._.......[U.....
0010: 0E A9 88 E7                                        ....
]
]



*******************************************
*******************************************


别名: starfieldrootg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Starfield Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
发布者: CN=Starfield Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
序列号: 0
有效期为 Tue Sep 01 08:00:00 CST 2009 至 Fri Jan 01 07:59:59 CST 2038
证书指纹:
	 MD5:  D6:39:81:C6:52:7E:96:69:FC:FC:CA:66:ED:05:F2:96
	 SHA1: B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
	 SHA256: 2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 7C 0C 32 1F A7 D9 30 7F   C4 7D 68 A3 62 A8 A1 CE  ..2...0...h.b...
0010: AB 07 5B 27                                        ..['
]
]



*******************************************
*******************************************


别名: verisignclass3ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
发布者: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
序列号: 3c9131cb1ff6d01b0e9ab8d044bf12be
有效期为 Mon Jan 29 08:00:00 CST 1996 至 Thu Aug 03 07:59:59 CST 2028
证书指纹:
	 MD5:  EF:5A:F1:33:EF:F1:CD:BB:51:02:EE:12:14:4B:96:C4
	 SHA1: A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B
	 SHA256: A4:B6:B3:99:6F:C2:F3:06:B3:FD:86:81:BD:63:41:3D:8C:50:09:CC:4F:A3:29:C2:CC:F0:E2:FA:1B:14:03:05
签名算法名称: SHA1withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 1


*******************************************
*******************************************


别名: affirmtrustpremiumeccca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US
发布者: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US
序列号: 7497258ac73f7a54
有效期为 Fri Jan 29 22:20:24 CST 2010 至 Mon Dec 31 22:20:24 CST 2040
证书指纹:
	 MD5:  64:B0:09:55:CF:B1:D5:99:E2:BE:13:AB:A6:5D:EA:4D
	 SHA1: B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
	 SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9A AF 29 7A C0 11 35 35   26 51 30 00 C3 6A FE 40  ..)z..55&Q0..j.@
0010: D5 AE D6 3C                                        ...<
]
]



*******************************************
*******************************************


别名: geotrustglobalca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
发布者: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
序列号: 23456
有效期为 Tue May 21 12:00:00 CST 2002 至 Sat May 21 12:00:00 CST 2022
证书指纹:
	 MD5:  F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5
	 SHA1: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
	 SHA256: FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: C0 7A 98 68 8D 89 FB AB   05 64 0C 11 7D AA 7D 65  .z.h.....d.....e
0010: B8 CA CC 4E                                        ...N
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C0 7A 98 68 8D 89 FB AB   05 64 0C 11 7D AA 7D 65  .z.h.....d.....e
0010: B8 CA CC 4E                                        ...N
]
]



*******************************************
*******************************************


别名: swisscomrootca2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Swisscom Root CA 2, OU=Digital Certificate Services, O=Swisscom, C=ch
发布者: CN=Swisscom Root CA 2, OU=Digital Certificate Services, O=Swisscom, C=ch
序列号: 1e9e28e848f2e5efc37c4a1e5a1867b6
有效期为 Fri Jun 24 16:38:14 CST 2011 至 Wed Jun 25 15:38:14 CST 2031
证书指纹:
	 MD5:  5B:04:69:EC:A5:83:94:63:18:A7:86:D0:E4:F2:6E:19
	 SHA1: 77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC
	 SHA256: F0:9B:12:2C:71:14:F4:A0:9B:D4:EA:4F:4A:99:D5:58:B4:6E:4C:25:CD:81:14:0D:29:C0:56:13:91:4C:38:41
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4D 26 20 22 89 4B D3 D5   A4 0A A1 6F DE E2 12 81  M& ".K.....o....
0010: C5 F1 3C 2E                                        ..<.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:7
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.33 Criticality=false
PolicyMappings [
[CertificatePolicyMap: [
IssuerDomain:CertificatePolicyId: [2.16.756.1.83.2.1]
SubjectDomain:CertificatePolicyId: [2.16.756.1.83.2.1]
]
]]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4D 26 20 22 89 4B D3 D5   A4 0A A1 6F DE E2 12 81  M& ".K.....o....
0010: C5 F1 3C 2E                                        ..<.
]
]



*******************************************
*******************************************


别名: godaddyclass2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US
发布者: OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US
序列号: 0
有效期为 Wed Jun 30 01:06:20 CST 2004 至 Fri Jun 30 01:06:20 CST 2034
证书指纹:
	 MD5:  91:DE:06:25:AB:DA:FD:32:17:0C:BB:25:17:2A:84:67
	 SHA1: 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
	 SHA256: C3:84:6B:F2:4B:9E:93:CA:64:27:4C:0E:C6:7C:1E:CC:5E:02:4F:FC:AC:D2:D7:40:19:35:0E:81:FE:54:6A:E4
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: D2 C4 B0 D2 91 D4 4C 11   71 B3 61 CB 3D A1 FE DD  ......L.q.a.=...
0010: A8 6A D4 E3                                        .j..
]
[OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US]
SerialNumber: [    00]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: D2 C4 B0 D2 91 D4 4C 11   71 B3 61 CB 3D A1 FE DD  ......L.q.a.=...
0010: A8 6A D4 E3                                        .j..
]
]



*******************************************
*******************************************


别名: godaddyrootg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US
发布者: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US
序列号: 0
有效期为 Tue Sep 01 08:00:00 CST 2009 至 Fri Jan 01 07:59:59 CST 2038
证书指纹:
	 MD5:  80:3A:BC:22:C1:E6:FB:8D:9B:3B:27:4A:32:1B:9A:01
	 SHA1: 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
	 SHA256: 45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 3A 9A 85 07 10 67 28 B6   EF F6 BD 05 41 6E 20 C1  :....g(.....An .
0010: 94 DA 0F DE                                        ....
]
]



*******************************************
*******************************************


别名: verisignclass3g5ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
发布者: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
序列号: 18dad19e267de8bb4a2158cdcc6b3b4a
有效期为 Wed Nov 08 08:00:00 CST 2006 至 Thu Jul 17 07:59:59 CST 2036
证书指纹:
	 MD5:  CB:17:E4:31:67:3E:E2:09:FE:45:57:93:F3:0A:FA:1C
	 SHA1: 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
	 SHA256: 9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99:89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false
0000: 30 5F A1 5D A0 5B 30 59   30 57 30 55 16 09 69 6D  0_.].[0Y0W0U..im
0010: 61 67 65 2F 67 69 66 30   21 30 1F 30 07 06 05 2B  age/gif0!0.0...+
0020: 0E 03 02 1A 04 14 8F E5   D3 1A 86 AC 8D 8E 6B C3  ..............k.
0030: CF 80 6A D4 48 18 2C 7B   19 2E 30 25 16 23 68 74  ..j.H.,...0%.#ht
0040: 74 70 3A 2F 2F 6C 6F 67   6F 2E 76 65 72 69 73 69  tp://logo.verisi
0050: 67 6E 2E 63 6F 6D 2F 76   73 6C 6F 67 6F 2E 67 69  gn.com/vslogo.gi
0060: 66                                                 f


#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 7F D3 65 A7 C2 DD EC BB   F0 30 09 F3 43 39 FA 02  ..e......0..C9..
0010: AF 33 31 33                                        .313
]
]



*******************************************
*******************************************


别名: amazonrootca1 [jdk]
创建日期: 2019-12-6
条目类型: trustedCertEntry

所有者: CN=Amazon Root CA 1, O=Amazon, C=US
发布者: CN=Amazon Root CA 1, O=Amazon, C=US
序列号: 66c9fcf99bf8c0a39e2f0788a43e696365bca
有效期为 Tue May 26 08:00:00 CST 2015 至 Sun Jan 17 08:00:00 CST 2038
证书指纹:
	 MD5:  43:C6:BF:AE:EC:FE:AD:2F:18:C6:88:68:30:FC:C8:E6
	 SHA1: 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16
	 SHA256: 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 84 18 CC 85 34 EC BC 0C   94 94 2E 08 59 9C C7 B2  ....4.......Y...
0010: 10 4E 0A 08                                        .N..
]
]



*******************************************
*******************************************


别名: certumca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Certum CA, O=Unizeto Sp. z o.o., C=PL
发布者: CN=Certum CA, O=Unizeto Sp. z o.o., C=PL
序列号: 10020
有效期为 Tue Jun 11 18:46:39 CST 2002 至 Fri Jun 11 18:46:39 CST 2027
证书指纹:
	 MD5:  2C:8F:9F:66:1D:18:90:B1:47:26:9D:8E:86:82:8C:A9
	 SHA1: 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18
	 SHA256: D8:E0:FE:BC:1D:B2:E3:8D:00:94:0F:37:D2:7D:41:34:4D:99:3E:73:4B:99:D5:65:6D:97:78:D4:D8:14:36:24
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]



*******************************************
*******************************************


别名: quovadisrootca2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root CA 2, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root CA 2, O=QuoVadis Limited, C=BM
序列号: 509
有效期为 Sat Nov 25 02:27:00 CST 2006 至 Tue Nov 25 02:23:33 CST 2031
证书指纹:
	 MD5:  5E:39:7B:DD:F8:BA:EC:82:E9:AC:62:BA:0C:54:00:2B
	 SHA1: CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7
	 SHA256: 85:A0:DD:7D:D7:20:AD:B7:FF:05:F8:3D:54:2B:20:9D:C7:FF:45:28:F7:D6:77:B1:83:89:FE:A5:E5:C4:9E:86
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 1A 84 62 BC 48 4C 33 25   04 D4 EE D0 F6 03 C4 19  ..b.HL3%........
0010: 46 D1 94 6B                                        F..k
]
[CN=QuoVadis Root CA 2, O=QuoVadis Limited, C=BM]
SerialNumber: [    0509]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1A 84 62 BC 48 4C 33 25   04 D4 EE D0 F6 03 C4 19  ..b.HL3%........
0010: 46 D1 94 6B                                        F..k
]
]



*******************************************
*******************************************


别名: swisssignplatinumg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=SwissSign Platinum CA - G2, O=SwissSign AG, C=CH
发布者: CN=SwissSign Platinum CA - G2, O=SwissSign AG, C=CH
序列号: 4eb200670c035d4f
有效期为 Wed Oct 25 16:36:00 CST 2006 至 Sat Oct 25 16:36:00 CST 2036
证书指纹:
	 MD5:  C9:98:27:77:28:1E:3D:0E:15:3C:84:00:B8:85:03:E6
	 SHA1: 56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66
	 SHA256: 3B:22:2E:56:67:11:E9:92:30:0D:C0:B1:5A:B9:47:3D:AF:DE:F8:C8:4D:0C:EF:7D:33:17:B4:C1:82:1D:14:36
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 50 AF CC 07 87 15 47 6F   38 C5 B4 65 D1 DE 95 AA  P.....Go8..e....
0010: E9 DF 9C CC                                        ....
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.16.756.1.89.1.1.1.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 20 68 74 74 70 3A 2F   2F 72 65 70 6F 73 69 74  . http://reposit
0010: 6F 72 79 2E 73 77 69 73   73 73 69 67 6E 2E 63 6F  ory.swisssign.co
0020: 6D 2F                                              m/

]]  ]
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 50 AF CC 07 87 15 47 6F   38 C5 B4 65 D1 DE 95 AA  P.....Go8..e....
0010: E9 DF 9C CC                                        ....
]
]



*******************************************
*******************************************


别名: chunghwaepkirootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd.", C=TW
发布者: OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd.", C=TW
序列号: 15c8bd65475cafb897005ee406d2bc9d
有效期为 Mon Dec 20 10:31:27 CST 2004 至 Wed Dec 20 10:31:27 CST 2034
证书指纹:
	 MD5:  1B:2E:00:CA:26:06:90:3D:AD:FE:6F:15:68:D3:6B:B3
	 SHA1: 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
	 SHA256: C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.23.42.7.0 Criticality=false
0000: 30 2F 30 2D 02 01 00 30   09 06 05 2B 0E 03 02 1A  0/0-...0...+....
0010: 05 00 30 07 06 05 67 2A   03 00 00 04 14 45 B0 C2  ..0...g*.....E..
0020: C7 0A 56 7C EE 5B 78 0C   95 F9 18 53 C1 A6 1C D8  ..V..[x....S....
0030: 10                                                 .


#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1E 0C F7 B6 67 F2 E1 92   26 09 45 C0 55 39 2E 77  ....g...&.E.U9.w
0010: 3F 42 4A A2                                        ?BJ.
]
]



*******************************************
*******************************************


别名: quovadisrootca3g3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root CA 3 G3, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root CA 3 G3, O=QuoVadis Limited, C=BM
序列号: 2ef59b0228a7db7affd5a3a9eebd03a0cf126a1d
有效期为 Fri Jan 13 04:26:32 CST 2012 至 Mon Jan 13 04:26:32 CST 2042
证书指纹:
	 MD5:  DF:7D:B9:AD:54:6F:68:A1:DF:89:57:03:97:43:B0:D7
	 SHA1: 48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D
	 SHA256: 88:EF:81:DE:20:2E:B0:18:45:2E:43:F8:64:72:5C:EA:5F:BD:1F:C2:D9:D2:05:73:07:09:C5:D8:B8:69:0F:46
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C6 17 D0 BC A8 EA 02 43   F2 1B 06 99 5D 2B 90 20  .......C....]+. 
0010: B9 D7 9C E4                                        ....
]
]



*******************************************
*******************************************


别名: quovadisrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
序列号: 3ab6508b
有效期为 Tue Mar 20 02:33:33 CST 2001 至 Thu Mar 18 02:33:33 CST 2021
证书指纹:
	 MD5:  27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24
	 SHA1: DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
	 SHA256: A4:5E:DE:3B:BB:F0:9C:8A:E1:5C:72:EF:C0:72:68:D6:93:A2:1C:99:6F:D5:1E:67:CA:07:94:60:FD:6D:88:73
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: ocsp
   accessLocation: URIName: https://ocsp.quovadisoffshore.com
]
]

#2: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 8B 4B 6D ED D3 29 B9 06   19 EC 39 39 A9 F0 97 84  .Km..)....99....
0010: 6A CB EF DF                                        j...
]
[CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM]
SerialNumber: [    3ab6508b]
]

#3: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#4: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.3.6.1.4.1.8024.0.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.2
  qualifier: 0000: 30 81 C7 1A 81 C4 52 65   6C 69 61 6E 63 65 20 6F  0.....Reliance o
0010: 6E 20 74 68 65 20 51 75   6F 56 61 64 69 73 20 52  n the QuoVadis R
0020: 6F 6F 74 20 43 65 72 74   69 66 69 63 61 74 65 20  oot Certificate 
0030: 62 79 20 61 6E 79 20 70   61 72 74 79 20 61 73 73  by any party ass
0040: 75 6D 65 73 20 61 63 63   65 70 74 61 6E 63 65 20  umes acceptance 
0050: 6F 66 20 74 68 65 20 74   68 65 6E 20 61 70 70 6C  of the then appl
0060: 69 63 61 62 6C 65 20 73   74 61 6E 64 61 72 64 20  icable standard 
0070: 74 65 72 6D 73 20 61 6E   64 20 63 6F 6E 64 69 74  terms and condit
0080: 69 6F 6E 73 20 6F 66 20   75 73 65 2C 20 63 65 72  ions of use, cer
0090: 74 69 66 69 63 61 74 69   6F 6E 20 70 72 61 63 74  tification pract
00A0: 69 63 65 73 2C 20 61 6E   64 20 74 68 65 20 51 75  ices, and the Qu
00B0: 6F 56 61 64 69 73 20 43   65 72 74 69 66 69 63 61  oVadis Certifica
00C0: 74 65 20 50 6F 6C 69 63   79 2E                    te Policy.

], PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 16 68 74 74 70 3A 2F   2F 77 77 77 2E 71 75 6F  ..http://www.quo
0010: 76 61 64 69 73 2E 62 6D                            vadis.bm

]]  ]
]

#5: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#6: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 8B 4B 6D ED D3 29 B9 06   19 EC 39 39 A9 F0 97 84  .Km..)....99....
0010: 6A CB EF DF                                        j...
]
]



*******************************************
*******************************************


别名: digicerthighassuranceevrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: 2ac5c266a0b409b8f0b79f2ae462577
有效期为 Fri Nov 10 08:00:00 CST 2006 至 Mon Nov 10 08:00:00 CST 2031
证书指纹:
	 MD5:  D4:74:DE:57:5C:39:B2:D3:9C:85:83:C5:C0:65:49:8A
	 SHA1: 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
	 SHA256: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: B1 3E C3 69 03 F8 BF 47   01 D4 98 26 1A 08 02 EF  .>.i...G...&....
0010: 63 64 2B C3                                        cd+.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B1 3E C3 69 03 F8 BF 47   01 D4 98 26 1A 08 02 EF  .>.i...G...&....
0010: 63 64 2B C3                                        cd+.
]
]



*******************************************
*******************************************


别名: quovadisrootca1g3 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=QuoVadis Root CA 1 G3, O=QuoVadis Limited, C=BM
发布者: CN=QuoVadis Root CA 1 G3, O=QuoVadis Limited, C=BM
序列号: 78585f2ead2c194be3370735341328b596d46593
有效期为 Fri Jan 13 01:27:44 CST 2012 至 Mon Jan 13 01:27:44 CST 2042
证书指纹:
	 MD5:  A4:BC:5B:3F:FE:37:9A:FA:64:F0:E2:FA:05:3D:0B:AB
	 SHA1: 1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67
	 SHA256: 8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A3 97 D6 F3 5E A2 10 E1   AB 45 9F 3C 17 64 3C EE  ....^....E.<.d<.
0010: 01 70 9C CC                                        .p..
]
]



*******************************************
*******************************************


别名: comodorsaca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
发布者: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
序列号: 4caaf9cadb636fe01ff74ed85b03869d
有效期为 Tue Jan 19 08:00:00 CST 2010 至 Tue Jan 19 07:59:59 CST 2038
证书指纹:
	 MD5:  1B:31:B0:71:40:36:CC:14:36:91:AD:C4:3E:FD:EC:18
	 SHA1: AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4
	 SHA256: 52:F0:E1:C4:E5:8E:C6:29:29:1B:60:31:7F:07:46:71:B8:5D:7E:A8:0D:5B:07:27:34:63:53:4B:32:B4:02:34
签名算法名称: SHA384withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: BB AF 7E 02 3D FA A6 F1   3C 84 8E AD EE 38 98 EC  ....=...<....8..
0010: D9 32 32 D4                                        .22.
]
]



*******************************************
*******************************************


别名: buypassclass2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Buypass Class 2 Root CA, O=Buypass AS-983163327, C=NO
发布者: CN=Buypass Class 2 Root CA, O=Buypass AS-983163327, C=NO
序列号: 2
有效期为 Tue Oct 26 16:38:03 CST 2010 至 Fri Oct 26 16:38:03 CST 2040
证书指纹:
	 MD5:  46:A7:D2:FE:45:FB:64:5A:A8:59:90:9B:78:44:9B:29
	 SHA1: 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
	 SHA256: 9A:11:40:25:19:7C:5B:B9:5D:94:E6:3D:55:CD:43:79:08:47:B6:46:B2:3C:DF:11:AD:A4:A0:0E:FF:15:FB:48
签名算法名称: SHA256withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C9 80 77 E0 62 92 82 F5   46 9C F3 BA F7 4C C3 DE  ..w.b...F....L..
0010: B8 A3 AD 39                                        ...9
]
]



*******************************************
*******************************************


别名: secomscrootca2 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP
发布者: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP
序列号: 0
有效期为 Fri May 29 13:00:39 CST 2009 至 Tue May 29 13:00:39 CST 2029
证书指纹:
	 MD5:  6C:39:7D:A4:0E:55:59:B2:3F:D6:41:B1:12:50:DE:43
	 SHA1: 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74
	 SHA256: 51:3B:2C:EC:B8:10:D4:CD:E5:DD:85:39:1A:DF:C6:C2:DD:60:D8:7B:B7:36:D2:B5:21:48:4A:A4:7A:0E:BE:F6
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 0A 85 A9 77 65 05 98 7C   40 81 F8 0F 97 2C 38 F1  ...we...@....,8.
0010: 0A EC 3C CF                                        ..<.
]
]



*******************************************
*******************************************


别名: certumtrustednetworkca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL
发布者: CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL
序列号: 444c0
有效期为 Wed Oct 22 20:07:37 CST 2008 至 Mon Dec 31 20:07:37 CST 2029
证书指纹:
	 MD5:  D5:E9:81:40:C5:18:69:FC:46:2C:89:75:62:0F:AA:78
	 SHA1: 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E
	 SHA256: 5C:58:46:8D:55:F5:8E:49:7E:74:39:82:D2:B5:00:10:B6:D1:65:37:4A:CF:83:A7:D4:A3:2D:B7:68:C4:40:8E
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 08 76 CD CB 07 FF 24 F6   C5 CD ED BB 90 BC E2 84  .v....$.........
0010: 37 46 75 F7                                        7Fu.
]
]



*******************************************
*******************************************


别名: verisignclass3g3ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
发布者: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
序列号: 9b7e0649a33e62b9d5ee90487129ef57
有效期为 Fri Oct 01 08:00:00 CST 1999 至 Thu Jul 17 07:59:59 CST 2036
证书指纹:
	 MD5:  CD:68:B6:A7:C7:C4:CE:75:E0:1D:4F:57:44:61:92:09
	 SHA1: 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6
	 SHA256: EB:04:CF:5E:B1:F3:9A:FA:76:2F:2B:B1:20:F2:96:CB:A5:20:C1:B9:7D:B1:58:95:65:B8:1C:B9:A1:7B:72:44
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 1


*******************************************
*******************************************


别名: entrustevca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
发布者: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
序列号: 456b5054
有效期为 Tue Nov 28 04:23:42 CST 2006 至 Sat Nov 28 04:53:42 CST 2026
证书指纹:
	 MD5:  D6:A5:C3:ED:5D:DD:3E:00:C1:3D:87:92:1F:1D:3F:E4
	 SHA1: B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
	 SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 1.2.840.113533.7.65.0 Criticality=false
0000: 30 0E 1B 08 56 37 2E 31   3A 34 2E 30 03 02 04 90  0...V7.1:4.0....


#2: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 68 90 E4 67 A4 A6 53 80   C7 86 66 A4 F1 F7 4B 43  h..g..S...f...KC
0010: FB 84 BD 6D                                        ...m
]
]

#3: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#4: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#5: ObjectId: 2.5.29.16 Criticality=false
PrivateKeyUsage: [
From: Tue Nov 28 04:23:42 CST 2006, To: Sat Nov 28 04:53:42 CST 2026]

#6: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 68 90 E4 67 A4 A6 53 80   C7 86 66 A4 F1 F7 4B 43  h..g..S...f...KC
0010: FB 84 BD 6D                                        ...m
]
]



*******************************************
*******************************************


别名: teliasonerarootcav1 [jdk]
创建日期: 2017-11-15
条目类型: trustedCertEntry

所有者: CN=TeliaSonera Root CA v1, O=TeliaSonera
发布者: CN=TeliaSonera Root CA v1, O=TeliaSonera
序列号: 95be16a0f72e46f17b398272fa8bcd96
有效期为 Thu Oct 18 20:00:50 CST 2007 至 Mon Oct 18 20:00:50 CST 2032
证书指纹:
	 MD5:  37:41:49:1B:18:56:9A:26:F5:AD:C2:66:FB:40:A5:4C
	 SHA1: 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
	 SHA256: DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89
签名算法名称: SHA1withRSA
主体公共密钥算法: 4096 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F0 8F 59 38 00 B3 F5 8F   9A 96 0C D5 EB FA 7B AA  ..Y8............
0010: 17 E8 13 12                                        ....
]
]



*******************************************
*******************************************


别名: globalsigneccrootcar5 [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R5
发布者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R5
序列号: 605949e0262ebb55f90a778a71f94ad86c
有效期为 Tue Nov 13 08:00:00 CST 2012 至 Tue Jan 19 11:14:07 CST 2038
证书指纹:
	 MD5:  9F:AD:3B:1C:02:1E:8A:BA:17:74:38:81:0C:A2:BC:08
	 SHA1: 1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA
	 SHA256: 17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24
签名算法名称: SHA384withECDSA
主体公共密钥算法: 384 位 EC 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 3D E6 29 48 9B EA 07 CA   21 44 4A 26 DE 6E DE D2  =.)H....!DJ&.n..
0010: 83 D0 9F 59                                        ...Y
]
]



*******************************************
*******************************************


别名: dtrustclass3ca2ev [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=D-TRUST Root Class 3 CA 2 EV 2009, O=D-Trust GmbH, C=DE
发布者: CN=D-TRUST Root Class 3 CA 2 EV 2009, O=D-Trust GmbH, C=DE
序列号: 983f4
有效期为 Thu Nov 05 16:50:46 CST 2009 至 Mon Nov 05 16:50:46 CST 2029
证书指纹:
	 MD5:  AA:C6:43:2C:5E:2D:CD:C4:34:C0:50:4F:11:02:4F:B6
	 SHA1: 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83
	 SHA256: EE:C5:49:6B:98:8C:E9:86:25:B9:34:09:2E:EC:29:08:BE:D0:B0:F3:16:C2:D4:73:0C:84:EA:F1:F3:D3:48:81
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%20EV%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist]
, DistributionPoint:
     [URIName: http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_ev_2009.crl]
]]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: D3 94 8A 4C 62 13 2A 19   2E CC AF 72 8A 7D 36 D7  ...Lb.*....r..6.
0010: 9A 1C DC 67                                        ...g
]
]



*******************************************
*******************************************


别名: ttelesecglobalrootclass2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=T-TeleSec GlobalRoot Class 2, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
发布者: CN=T-TeleSec GlobalRoot Class 2, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
序列号: 1
有效期为 Wed Oct 01 18:40:14 CST 2008 至 Sun Oct 02 07:59:59 CST 2033
证书指纹:
	 MD5:  2B:9B:9E:E4:7B:6C:1F:00:72:1A:CC:C1:77:79:DF:6A
	 SHA1: 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
	 SHA256: 91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: BF 59 20 36 00 79 A0 A0   22 6B 8C D5 F2 61 D2 B8  .Y 6.y.."k...a..
0010: 2C CB 82 4A                                        ,..J
]
]



*******************************************
*******************************************


别名: starfieldservicesrootg2ca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=Starfield Services Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
发布者: CN=Starfield Services Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
序列号: 0
有效期为 Tue Sep 01 08:00:00 CST 2009 至 Fri Jan 01 07:59:59 CST 2038
证书指纹:
	 MD5:  17:35:74:AF:7B:61:1C:EB:F4:F9:3C:E2:EE:40:F9:A2
	 SHA1: 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
	 SHA256: 56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9C 5F 00 DF AA 01 D7 30   2B 38 88 A2 B8 6D 4A 9C  ._.....0+8...mJ.
0010: F2 11 91 83                                        ....
]
]



*******************************************
*******************************************


别名: digicertglobalrootca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
发布者: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: 83be056904246b1a1756ac95991c74a
有效期为 Fri Nov 10 08:00:00 CST 2006 至 Mon Nov 10 08:00:00 CST 2031
证书指纹:
	 MD5:  79:E4:A9:84:0D:7D:3A:96:D7:C0:4F:E2:43:4C:89:2E
	 SHA1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
	 SHA256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
0010: B2 3D D1 55                                        .=.U
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
0010: B2 3D D1 55                                        .=.U
]
]



*******************************************
*******************************************


别名: addtrustqualifiedca [jdk]
创建日期: 2016-8-25
条目类型: trustedCertEntry

所有者: CN=AddTrust Qualified CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
发布者: CN=AddTrust Qualified CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
序列号: 1
有效期为 Tue May 30 18:44:50 CST 2000 至 Sat May 30 18:44:50 CST 2020
证书指纹:
	 MD5:  27:EC:39:47:CD:DA:5A:AF:E2:9A:01:65:21:A9:4C:BB
	 SHA1: 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF
	 SHA256: 80:95:21:08:05:DB:4B:BC:35:5E:44:28:D8:FD:6E:C2:CD:E3:AB:5F:B9:7A:99:42:98:8E:B8:F4:DC:D0:60:16
签名算法名称: SHA1withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 39 95 8B 62 8B 5C C9 D4   80 BA 58 0F 97 3F 15 08  9..b.\....X..?..
0010: 43 CC 98 A7                                        C...
]
[CN=AddTrust Qualified CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE]
SerialNumber: [    01]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  Key_CertSign
  Crl_Sign
]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 39 95 8B 62 8B 5C C9 D4   80 BA 58 0F 97 3F 15 08  9..b.\....X..?..
0010: 43 CC 98 A7                                        C...
]
]



*******************************************
*******************************************



2.2.4 jre cacerts 证书库 # 安装指定的SSL证书到cacerts证书库

以实际案例讲解安装过程。

  • 案例引入:

微服务调用第三方API报如下错误:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target 

在项目开发中,有时会遇到与SSL安全证书导入打交道,如何把证书导入java的cacerts证书库?简单的用NEXT做个演示:

  • Step1 IE或其他浏览器,打开https://next.xxxcorp.cn,把要导入java证书库的证书下载 ,在该网页安全警报弹出窗口上查看证书--详细信息--复制到文件,会弹出一个证书导出向导对话框,按提示一直下一步直到完成。把证书保存在C盘,名字为NEXT_CertKey.cer

  • Step2 将上面导出的证书导入java中的cacerts证书库,cmd进入$JAVA_HOME\jre\lib\security目录,敲入如下命令回车执行

keytool -import -alias lxk 
	-keystore C:\jdk1.8\jre\lib\security\cacerts 
	-file C:\NEXT_CertKey.cer 
	-storepass changeit
	-trustcacerts        

java中cacerts证书库默认密码为changeitY确认即可,OK,认证已添加至keystore。

或:

keytool -import -alias lxk -keystore C:\jdk1.8\jre\lib\security\cacerts -file C:\NEXT_CertKey.cer -trustcacerts

此时命令行会提示你输入cacerts证书库的密码,你敲入changeit就行了,这是java中cacerts证书库的默认密码,亦可修改。

以后更新时,先删除原来的证书,然后导入新的证书 :

  • 卸载指定证书(lxk):
keytool -delete -alias lxk -keystore C:\jdk1.8\jre\lib\security.cacerts -storepass  "changeit"
  • 查看指定的SSL证书的安装信息:
keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts"  -alias lxk
  • 验证指定的SSL证书是否安装成功:
keytool -v -list -alias lxk -keystore C:\jdk1.8\jre\lib\security.cacerts

2.2.5 jre cacerts 证书库 # 从cacerts证书库导出指定的SSL证书

keytool -export -alias ca -keystore cacerts -file d:\temp\ca.crt -storepass changeit
  • -alias 证书别名
  • -file 证书名称和路径
  • -storepass 证书密码

2.2.6 jre cacerts 证书库 # 从cacerts库查看指定的证书

keytool -list  -v -keystore ./cacerts -storepass 123456

或 : keytool -list  -v -keystore e:/keytool/yushan.keystore -storepass 123456

output:

Keystore 类型: JKS
Keystore 提供者: SUN

您的 keystore 包含 1 输入

别名名称: yushan
创建日期: 2009-7-29
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国
序列号:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
证书指纹:
         MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
         SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
         签名算法名称:SHA1withRSA
         版本: 3

缺省情况下,-list 命令打印证书的 MD5 指纹。
而如果指定了 -v 选项,将以可读格式打印证书
而如果指定了 -rfc 选项,将以可打印的编码格式输出证书

  • 例如:keytool -list -rfc -keystore e:/yushan.keystore -storepass 123456

output:

Keystore 类型: JKS
Keystore 提供者: SUN

您的 keystore 包含 1 输入

别名名称: yushan
创建日期: 2009-7-29
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
-----BEGIN CERTIFICATE-----
MIICSzCCAbSgAwIBAgIESm8p7TANBgkqhkiG9w0BAQUFADBqMQ8wDQYDVQQGDAbkuK3lm70xDzAN
BgNVBAgMBua5luWNlzEPMA0GA1UEBwwG5rmY5r2tMREwDwYDVQQKDAh4eOWNj+S8mjERMA8GA1UE
CwwIeHjlhazlj7gxDzANBgNVBAMTBnl1c2hhbjAeFw0wOTA3MjgxNjQwMTNaFw0xMDA3MjgxNjQw
MTNaMGoxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5rmW5Y2XMQ8wDQYDVQQHDAbmuZjmva0x
ETAPBgNVBAoMCHh45Y2P5LyaMREwDwYDVQQLDAh4eOWFrOWPuDEPMA0GA1UEAxMGeXVzaGFuMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJoru1RQczRzTnBWxefVNspQBykS220rS8Y/oX3mZa
hjL4wLfOURzUuxxuVQR2jx7QI+XKME+DHQj9r6aAcLBCi/T1jwF8mVYxtpRuTzE/6KEZdhowEe70
liWLVE+hytLBHZ03Zhwcd6q5HUMu27du3MPQvqiwzTY7MrwIvQQ8iQIDAQABMA0GCSqGSIb3DQEB
BQUAA4GBAGoQQ1/FnTfkpQh+Ni6h3fZdn3sR8ZzDMbOAIYVLAhBb85XDJ8QZTarHbZMJcIdHxAl1
i08ct3E8U87V9t8GZFWVC4BFg/+zeFEv76SFpVE56iX7P1jpsu78z0m69hHlds77VJTdyfMSvtXv
sYHP3fxfzx9WyhipBwd8VPK/NgEP
-----END CERTIFICATE-----

2.2.7 修改keystore的口令

keytool -storepasswd -keystore e:/johnny.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new johnny(新密码)

2.2.8 修改证书条目的口令

keytool -keypasswd -alias johnny(需要修改密码的别名) -keypass johnny(原始密码) -new 123456(别名的新密码)  -keystore e:/johnny.keystore -storepass 123456

2.2.9 修改keystore中别名为johnny的信息

keytool -selfcert -alias johnny -keypass johnny -keystore e:/johnny.keystore -storepass 123456 -dname "cn=johnny,ou=johnny,o=johnny,c=us"

2.2.10 生成秘钥库、并创建一个条目

 keytool  -genkey  -keystore  "D:\keystore\hellocj.keystore"   -alias  testcj   -keyalg   RSA   -validity  365

命令敲完回车之后,需要我们依次输入一串信息,分别是秘钥库的密码、名字和姓氏等:

上图中红框中的都是手动敲入的内容。名字和姓氏这里一般是填写一个域名,我这里填写的是 localhost,我的秘钥库口令使用的是hellocj

在上图中敲入y回车之后 :

如果你想让名为testcj的这个条目的秘钥口令和秘钥库的口令一样,直接回车即可,我这里让此条目的秘钥口令为testcj,所以我输入testcj

好了我们的秘钥库创建好了,秘钥库中也添加了一个名为testcj的条目,秘钥库的密码是hellocj,testcj这个条目对应的秘钥口令是testcj

说明:如果觉得一步一步的输入很不科学的话,可以使用下面的命令完成上述全部操作:

keytool   -genkey   -keystore  "D:\keystore\hellocj.keystore"   -alias   testcj   -keyalg   RSA   -validity  365      -dname  "CN=localhost, OU=org, O=org.cj, L=昆明, ST=云南, C=中国"   -keypass  testcj  -storepass   hellocj

2.2.11 往已存在的秘钥库中添加条目

  • 前面讲的是创建一个秘钥库文件,并添加一个初始化条目,那么如果秘钥库文件已经存在,我们想往里面添加条目怎么办。例如我想往里面添加名为cjTomcat的条目,给该条目设置的口令是helloworld 那么我的命令是:
 keytool    -genkey   -keystore   "D:\keystore\hellocj.keystore"    -alias     "cjTomcat"       -keyalg   "RSA"   -validity  365  -dname  "CN=127.0.0.1,OU=org, O=org.cj, L=昆明, ST=云南, C=中国"  -keypass   "helloworld" -storepass  "hellocj"

2.2.12 删除证书库的指定条目

keytool -delete -alias keyAlias -keystore keystore-name -storepass password

例如:keytool -delete -alias "localhost" -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore" -storepass "123456"

tomcat.keystore : 自定义的证书库

删除前 ↑

删除后 ↑

2.2.X keytool 常用选项

-certreq     生成证书请求
-genkey      生成密钥。在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
(在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:/Documents and Settings/UserName/文件名为“.keystore”)
-genkeypait  生成密钥对
-gencert     根据证书请求生成证书
-alias       产生别名
-changealias 更改条目的别名
-keystore    证书保存位置。指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg      指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))
-keypasswd   更改条目的密钥口令
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码(获取keystore信息所需的密码)
-keypass     指定别名条目的密码(私钥的密码)
-dname       指定证书拥有者信息 例如:  "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"
-list        列出密钥库中的条目 、 显示密钥库中的证书信息      keytool -list -v -keystore 指定keystore -storepass 密码
-v           显示密钥库中的证书详细信息
-export      将别名指定的证书导出到文件  keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
-exportcert  导出证书
-file        参数指定导出到文件的文件名
-delete      删除密钥库中某条目          keytool -delete -alias 指定需删除的别  -keystore 指定keystore  -storepass 密码
-printcert   打印证书内容 / 查看导出的证书信息          keytool -printcert -file yushan.crt
-printcertreq 打印证书请求的内容
-printcrl    打印CRL文件的内容
-keypasswd   修改密钥库中指定条目口令    keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new  新密码  -storepass keystore密码  -keystore sage
-storepasswd 更改密钥库的存储口令 / 修改keystore口令      keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)
-import      将已签名数字证书导入密钥库  keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书
-importcert  导入证书或证书链
-importkeystore 从其他密钥库导入一个或所有条目

-ext X.509   扩展

下面是各选项的缺省值:

-alias "mykey"
-keyalg "DSA"
-keysize 1024
-validity 90
-keystore 用户宿主目录中名为 .keystore 的文件
-file 读时为标准输入,写时为标准输出       

2.3 查看证书

  • 查看 PEM证书
openssl x509 -text -noout -in CERTIFICATE.pem
  • 查看 DER证书
openssl x509 -inder der -text -noout -in CERTIFICATE.der
  • 查看 CSR证书
openssl req -text -noout -in mysite.csr
  • 查看 P7B证书
openssl pkcs7 -inform der -in CERTIFICATE.p7b  -print_certs -text
  • 查看 JKS证书
keytool -list -rfc -keystore server.jks -storepass XXXXXX

# 查看 jre cacerts 证书库内的所有JKS证书
keytool   -list  -v  -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass "changeit" > ./cacerts.$(date +'%Y%m%d%H%M%S').log

# 查看 jre cacerts 证书库内的指定JKS证书
keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts"  -alias lxk

# 验证指定的SSL证书是否安装成功
keytool -v -list -alias lxk -keystore C:\jdk1.8\jre\lib\security.cacerts
  • 验证服务端/指定主机是否支持指定的cipher
openssl s_client -connect www.baidu.com:443 -tls1_2 -cipher ECDHE-ECDSA-AES128-GCM-SHA256
  • -tls1_2 用于指定tls版本,也可换为指定其他TLS版本

2.4 转换证书

转换 PEM证书(.pem /.crt /.cer)

  • PEM to DER
openssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.der
  • PEM to P7B
openssl crl2pkcs7 -nocrl -certfile CERTIFICATE.cer -certfile CACert.cer -out CERTIFICATE.p7b
  • PEM to PFX
openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.cer [-certfile CACert.cer]

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.pem

转换 DER证书(.der /.crt /.cer)

  • DER to PEM
openssl x509 -inform der -in CERTIFICATE.cer -out CERTIFICATE.pem

转换 P7B证书(.p7b /.p7c)

  • P7B to PEM
openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer
  • P7B to PFX
openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer

转换 PFX证书(.pfx /.p12)

  • PFX to PEM
openssl pkcs12 -in CERTIFICATE.pfx -out CERTIFICATE.cer -nodes konwersja poprze OpenSSL
openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem
openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem

PFX to PEM后CERTIFICATE.cer文件包含认证证书和私钥,需要把它们分开存储才能使用。

JKS 和 PKCS#12 格式互转

  • JKS to P12
keytool -importkeystore -srcstoretype JKS -deststoretype PKCS12 -srckeystore server.jks -destkeystore server.p12
  • P12 to JKS
keytool -importkeystore -srcstoretype PKCS12 -deststoretype JKS -srckeystore server.p12 -destkeystore server.jks

3 Web服务器配置HTTPS证书

3.1 Tomcat

Step1 生成/获取 SSL 证书

  • 方式1:通过CA机构获取SSL证书

  • 方式2:通过openssl / keytool 生成自签名的SSL证书

Step2 使用jdk keytool将SSL证书添加到Java的密钥库(.keystore)

  • 方式1:使用java jdk自带的证书工具keytool($JAVA_HOME/bin/keytool/keytool.exe),生成自签名的SSL证书,并添加到自定义的密钥库(.keystore)文件中

此方法相当于Step1、Step2合二为一。

keytool -genkeypair -alias "localhost"
  -keyalg "RSA"
  -sigalg "SHA256withRSA"
  -keysize 2048 
  -validity 365 
  -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore"
  -storepass 123456 
  -keypass "123456"  
  -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"
  • alias: 证书的别名(而非密钥库的别名)
  • keyalg: 证书算法,RSA. 【本场景只选这个选项】

可选值:RSA、DSA(默认)、EC

  • sigalg : 指定签名算法(MD5和 SHA1的签名算法已经不安全):
  • keyalg = RSA 时,签名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA(默认)、SHA384withRSA、SHA512withRSA
  • keyalg = DSA 时,签名算法有:SHA1withDSA、SHA256withDSA(默认)
  • validity:证书有效时间,365天
  • keystore:新建证书库的目标路径和文件名。命名为xxx.jks / xxx.keystore 后缀均可
  • dname : 表明密钥的发行者身份(Distinguished Names
  • CN = 域名或IP(Common Name) 注:生成服务器证书时,CN要和服务器的 域名 或 IP 相同,本地测试则使用localhost,其他的可以不填(客户端证书无要求)
  • OU = 组织单位名称(Organization Unit)
  • O = 组织名称(Organization Name)
  • L = 城市或区域名称(Locality Name)
  • ST = 州或省份名称(State Name)
  • C = 国家的简写(Country,CN 代表中国)
  • ...

command output:

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -destkeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
  • 查看证书(从证书库)

添加到密钥库之后,可进行查验

# [1] 查看全部的证书
# keytool -list -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore"  -storepass "123456"
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 1 个条目

localhost, 2024-4-7, PrivateKeyEntry,
证书指纹 (SHA1): 39:6F:E6:3E:F8:03:04:62:2A:06:EF:88:47:FE:CC:CE:CD:BA:A7:E6

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -destkeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

# [2] 查看指定别名的证书
# keytool -list -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore"  -alias "localhost" -storepass "123456"
localhost, 2024-4-7, PrivateKeyEntry,
证书指纹 (SHA1): 39:6F:E6:3E:F8:03:04:62:2A:06:EF:88:47:FE:CC:CE:CD:BA:A7:E6

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -destkeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
  • 补充:导出指定证书(从证书库)
# keytool -exportcert -alias "localhost" -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore" -storepass "123456" -file "localhost.cer"
存储在文件 <localhost.cer> 中的证书

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -destkeystore D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
  • 补充:导入指定证书(到证书库)
# keytool -import -alias "localhost" -file "localhost.cer" -keystore "D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\tomcat.keystore" -storepass "123456"
所有者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN
发布者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN
序列号: 7264186
有效期为 Sun Apr 07 14:13:14 CST 2024 至 Mon Apr 07 14:13:14 CST 2025
证书指纹:
         MD5:  B7:00:32:B8:19:94:A2:12:BD:B7:0C:9F:A1:A2:B2:73
         SHA1: 39:6F:E6:3E:F8:03:04:62:2A:06:EF:88:47:FE:CC:CE:CD:BA:A7:E6
         SHA256: 28:9B:90:CA:D6:7E:97:6F:E1:CB:DC:8D:D8:57:25:BA:5D:51:03:64:B8:10:7A:5E:C5:56:9F:90:A4:2D:87:F8
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: FF C8 C6 2F 22 AF 4D F0   4A 7A 35 ED 4A 28 17 F4  .../".M.Jz5.J(..
0010: A9 72 A5 5F                                        .r._
]
]

是否信任此证书? [否]:  是
证书已添加到密钥库中

存在相同证书时 ↑

Step3 配置 tomcat server.xml

# 去掉注释,并将keystoreFile和keystorePass处替换成自己的证书路径和生成证书时的口令即可

    <Connector port="8443" protocol="HTTP/1.1"
		maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
		clientAuth="false" sslProtocol="TLS" keystoreFile="D:\Program\Tomcat\apache-tomcat-9.0.46\conf\tomcat.keystore" keystorePass="123456">
    </Connector>

    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation. The default
         SSLImplementation will depend on the presence of the APR/native
         library and the useOpenSSL attribute of the
         AprLifecycleListener.
         Either JSSE or OpenSSL style configuration may be used regardless of
         the SSLImplementation selected. JSSE style configuration is used below.
    -->

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
  • port="443":指定HTTPS连接的端口号。
  • SSLEnabled="true":启用SSL。
  • keystoreFile:指定SSL证书的路径。
  • keystorePass:指定SSL证书的密码。
  • clientAuth="false":指定是否需要客户端认证,一般设置为false。
  • sslProtocol="TLS":指定SSL协议版本。

保存并关闭server.xml文件

Step4 重启Tomcat Server

重启Tomcat服务器,以使更改生效。
你可以使用./bin/shutdown.sh(bat)和./bin/startup.sh(bat)或类似的命令停止和启动Tomcat。

一旦完成上述步骤,Tomcat应该已经配置为使用HTTPS了。
你可以通过浏览器访问https://your_domain.com:8443(用你的实际域名替换)来测试HTTPS连接是否正常工作。

https://localhost:8443

StepX 强制Tomcat使用https协议

Tomcat既支持使用http协议,又支持使用https协议。
https协议是一种不安全的传输协议,内容会以明文的形式进行传输。

因此,在生产环境中,我们通常设置强制tomcat使用https协议,当有人使用http协议访问8080端口时,将该访问请求强制性重定向到8443端口上去。
要实现Tomcat对http协议的强制性重定向,我们需要打开conf目录下的web.xml文件,在文件的下方,添加如下内容:

<login-config>
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>

<security-constraint>
	<web-resource-collection >
		<web-resource-name >SSL</web-resource-name>
		<url-pattern>/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>  

3.2 Nginx

详情参见: 附件:nginx container启用http协议/ssl认证(福利) - 博客园/千千寰宇

4 FAQ(常见问题)

Q: 访问自签发SSL证书时,报: "next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - 证书链是由不受信任的颁发机构颁发的"(CURL)、"javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target / sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target / sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" (Java/HttpUrlConnection) / "与此站点的连接不安全"(浏览器)

问题描述

  • Tomcat Server :按照上面步骤配置了一个自签发的SSL证书。

https://localhost:8443

  • 浏览器 : 与此站点的连接不安全

  • Curl

# curl http://127.0.0.1:8443
Bad Request

# This combination of host and port requires TLS.
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - 证书链是由不受信任的颁发机构颁发的。
  • Java HttpUrlConnection 为例:

访问: https://localhost:8443

  • 源代码
@Test
public void getSelfSslHttpsUrl() throws IOException {

	String apiConnection = "selfSslHttpUrlRequest";
	Map<String, String> requestProperties = new HashMap<>();

	String url = "https://localhost:8443";
	String tester = "johnny";
	requestProperties.put("tester", tester);
	HttpURLConnection connectedHttpURLConnection = NetworkRequestUtils.getHttpURLConnection(null, url, requestProperties);
	connectedHttpURLConnection.disconnect();
}


public static HttpURLConnection getHttpURLConnection(SSLContext sslContext, String netUrl, Map<String, String> requestProperties) throws IOException {
	if(!ObjectUtils.isEmpty(sslContext)){
		setDefaultSSLSocketFactoryForHttpsURLConnection(sslContext);
	}
	URL url = new URL(netUrl);
	/** step1 打开连接 **/
	URLConnection connection = url.openConnection();

	/** step2 设置请求属性,如 请求头 **/
	//connection.setRequestProperty("Content-Type", "application/json");
	//connection.setRequestProperty("Authorization", "Bearer your_token_here");
	if(!ObjectUtils.isEmpty(requestProperties)){
		requestProperties.entrySet().stream().forEach(requestPropertyEntry -> {
			connection.setRequestProperty(requestPropertyEntry.getKey(), requestPropertyEntry.getValue());
		});
	}

	connection.connect();
	HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
	return httpURLConnection;
}
  • 报错信息
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

	at sun.security.ssl.Alert.createSSLException(Alert.java:131)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:327)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:270)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:265)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:646)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:465)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:361)
	at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:376)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:451)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:428)
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:184)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:154)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1198)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1107)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:400)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:372)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:587)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:167)
	at cn.seres.bd.util.http.NetworkRequestUtils.getHttpURLConnection(NetworkRequestUtils.java:68)
	at cn.seres.bd.util.NetworkRequestUtilsTest.getSelfSslHttpsUrl(NetworkRequestUtilsTest.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
	at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
	at sun.security.validator.Validator.validate(Validator.java:271)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:312)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:128)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:630)
	... 43 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)
	... 49 more

问题原因

使用了自签发的SSL证书

解决方法

  • 永久解决方法:使用浏览器/操作系统/JDK(cacerts)默认受信任CA机构所颁发的SSL证书

  • 临时解决方法0:curl --insecure https://127.0.0.1:8443

要使curl在进行HTTPS请求时忽略SSL证书验证,可以使用--insecure-k选项。这将使curl在访问HTTPS网址时不检查服务器SSL证书是否可信

  • 临时解决方法1:针对【浏览器】

浏览器用户,选择信任该Web站点的自签发SSL证书。(风险:通信不安全)

  • 临时解决方法2:针对【Tomcat Web Server】、【Java HttpURLConnection 程序】、【Java HttpClient 程序】等 HTTP 客户端的Java程序
  • Step1 从自定义的Tomcat证书库(tomcat.ketstore)中导出SSL证书(localhost.cer)
  • Step2.1 方法1:导入SSL证书到JDK默认受信任的证书库(cacerts)中
# keytool -import -alias localhost
	-keystore %JAVA_HOME%\jre\lib\security\cacerts 
	-file D:\Program\Apache-Tomcat\apache-tomcat-8.5.84\conf\localhost.cer 
	-storepass changeit
	-trustcacerts

command-output:

所有者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN
发布者: CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN
序列号: 7264186
有效期为 Sun Apr 07 14:13:14 CST 2024 至 Mon Apr 07 14:13:14 CST 2025
证书指纹:
         MD5:  B7:00:32:B8:19:94:A2:12:BD:B7:0C:9F:A1:A2:B2:73
         SHA1: 39:6F:E6:3E:F8:03:04:62:2A:06:EF:88:47:FE:CC:CE:CD:BA:A7:E6
         SHA256: 28:9B:90:CA:D6:7E:97:6F:E1:CB:DC:8D:D8:57:25:BA:5D:51:03:64:B8:10:7A:5E:C5:56:9F:90:A4:2D:87:F8
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: FF C8 C6 2F 22 AF 4D F0   4A 7A 35 ED 4A 28 17 F4  .../".M.Jz5.J(..
0010: A9 72 A5 5F                                        .r._
]
]

是否信任此证书? [否]:  是
证书已添加到密钥库中
  • 查验证书库中目标证书情况
# keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts"  -alias localhost -storepass changeit

command-output:

localhost, 2024-4-7, trustedCertEntry,
证书指纹 (SHA1): 39:6F:E6:3E:F8:03:04:62:2A:06:EF:88:47:FE:CC:CE:CD:BA:A7:E6
  • Step2.2 方法2:在JAVA程序的JVM启动参数中指定已安装了自签发SSL证书的证书库
jar -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=jks -Djavax.net.debug=ssl ...

Q:Java HTTPS 客户端应用程序,找不到受信任的证书库(如jre\lib\security\cacerts)时,报:"javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty"

问题原因

因某种环境原因,导致 Java应用程序未能找到JRE自带的受信任的证书库(cacerts)

解决方法

  • 方法1:检查、更新JRE自带的受信任证书库(jre\lib\security\cacerts)

有时候该文件在会不存在(如: openjdk)
有时候其内文件有可能有CA机构、或证书过期
有时候该文件因各种原因已损坏

注:重装 Oracle JDK 也不失为一种方法(其原理是一致的)

  • 方法2:Java应用程序的启动参数、或代码内主动配置受信任的证书库(默认/建议: JKS格式)
jar -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=jks ...
...

System.getProperty("javax.net.ssl.trustStore", "xxxx/jre/lib/security/cacerts");
System.getProperty("javax.net.ssl.trustStorePassword", "changeit");
System.getProperty("javax.net.ssl.trustStoreType", "jks");

...

F 附件(福利) : 工具类

F.1 NetworkRequestUtils

引入依赖

  • jdk 1.8.0_261
  • maven 依赖
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>2.0.40</version>
</dependency>

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.6</version>
  <scope>compile</scope>
</dependency>

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpcore</artifactId>
  <version>4.5.6</version>
  <scope>compile</scope>
</dependency>

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpcore-nio</artifactId>
  <version>4.5.6</version>
  <scope>compile</scope>
</dependency>

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpasyncclient</artifactId>
  <version>4.5.6</version>
  <scope>compile</scope>
</dependency>

NetworkRequestUtils

import cn.xxxx.exception.ApplicationException;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.naming.Context;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.util.HashMap;
import java.util.Map;

public class NetworkRequestUtils {
    private final static Logger logger = LoggerFactory.getLogger(NetworkRequestUtils.class);

    private final static String APPLICATION_JSON = "application/json";
    private final static String APPLICATION_OCTET_STREAM = "application/octet-stream";

    /**
     * 获取 HTTP URL Connection
     * @reference-doc
     *  [1] java Url请求带header - 51cto - https://blog.51cto.com/u_16213438/7165885
     *  [2] HttpURLConnection链接详解 - CSDN - https://blog.csdn.net/small_love/article/details/122410998
     * @param netUrl
     * @param requestProperties
     * @return
     * @throws IOException
     */
    public static HttpURLConnection getHttpURLConnection(String netUrl, Map<String, String> requestProperties) throws IOException {
        return getHttpURLConnection(null, netUrl, requestProperties );
    }

    public static HttpURLConnection getHttpURLConnection(SSLContext sslContext, String netUrl, Map<String, String> requestProperties) throws IOException {
        if(!ObjectUtils.isEmpty(sslContext)){
            setDefaultSSLSocketFactoryForHttpsURLConnection(sslContext);
        }
        URL url = new URL(netUrl);
        /** step1 打开连接 **/
        URLConnection connection = url.openConnection();

        /** step2 设置请求属性,如 请求头 **/
        //connection.setRequestProperty("Content-Type", "application/json");
        //connection.setRequestProperty("Authorization", "Bearer your_token_here");
        if(!ObjectUtils.isEmpty(requestProperties)){
            requestProperties.entrySet().stream().forEach(requestPropertyEntry -> {
                connection.setRequestProperty(requestPropertyEntry.getKey(), requestPropertyEntry.getValue());
            });
        }

        connection.connect();
        HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
        return httpURLConnection;
    }


    public static HttpURLConnection getHttpURLConnection(String netUrl) throws IOException {
        return getHttpURLConnection(netUrl, new HashMap<>());
    }

    /**
     * 是否请求/响应成功
     * @param connectedHttpURLConnection 已连接的HTTP-URL-连接 (有响应信息,也有请求信息)
     * @param connectionAlias 连接的别称,如: "vhrBackendDbcFileDownloadApiRequest"
     * @note 注意事项
     *  1. 上层调用时,需捕获本方法抛出的异常,并及时关闭连接(`connectedHttpURLConnection.disconnect()`),以防止报如下错误:
     *      java.io.IOException: stream is closed
     *          at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.ensureOpen(HttpURLConnection.java:3429)
     *          at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3454)
     *          at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
     *          ...
     */
    public static boolean isRequestSuccess(HttpURLConnection connectedHttpURLConnection,String connectionAlias) throws IOException {
        if(ObjectUtils.isEmpty(connectedHttpURLConnection)){
            throw new ApplicationException(String.format("The connected http URL connection (`%s`) is empty! request property: %s", connectionAlias, JSON.toJSONString( connectedHttpURLConnection.getRequestProperties() ) ));
        }
        /** 200 / ... **/
        int responseCode = connectedHttpURLConnection.getResponseCode();
        if(responseCode != HttpURLConnection.HTTP_OK){//200
            throw new ApplicationException( String.format("The connected http URL connection (`%s`)'s response code is not success/200 (%d)! request property: %s", connectionAlias, responseCode , JSON.toJSONString( connectedHttpURLConnection.getRequestProperties()) ) );
        }
        /** "application/json" / "application/octet-stream" / ... */
        String responseContentType = connectedHttpURLConnection.getContentType();
        if(ObjectUtils.isEmpty(responseContentType)){
            throw new ApplicationException(String.format("The connected http URL connection (`%s`)'s response's content type is empty!request property: %s", connectionAlias , JSON.toJSONString( connectedHttpURLConnection.getRequestProperties() ) ), logger);
        }
        switch (responseContentType){
            case APPLICATION_JSON:
                String responseStr = readConnectionResponseAsString( connectedHttpURLConnection, connectionAlias );
                /**
                 * step1 将HTTP响应结果转为JSON格式
                 * @sample "{"status":false,"data":null,"errorCode":"VHR_BACKEND_019","errorMsg":"获取外链失败","traceId":"52bbd4f1d8264a76bc161faee9d92510.120.16992379058863989"}"
                 */
                ObjectMapper objectMapper = new ObjectMapper();
                HashMap<String, Object> response = objectMapper.readValue( responseStr, HashMap.class);
                /**
                 * step2 判断 status 是否为空或为真
                 */
                Boolean status = (Boolean) response.get("status");
                if(ObjectUtils.isEmpty(status) || status != true){
                    throw new ApplicationException(
                        String.format("The connected http URL connection (`%s`)'s response's content type is %s and it's status is empty or not true!The response content is : %s."
                        , connectionAlias
                        , APPLICATION_JSON
                        , JSON.toJSONString(response)
                    ));
                }
                break;
            case APPLICATION_OCTET_STREAM:
                //Do Nothing; //暂不检查此类型,默认均为成功
                break;
            default:
                //Do Nothing;
                break;
        }
        return true;
    }

    /**
     * 读取连接响应内容为String
     * @description
     *  1. 一般该连接对象的响应类型(content-type)为 application/json
     * @param httpURLConnection
     * @param connectionAlias
     * @throws IOException
     */
    public static String readConnectionResponseAsString(HttpURLConnection httpURLConnection, String connectionAlias) throws IOException {
        //step1 读取 HTTP 响应内容
        BufferedReader in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
        String inputLine;
        StringBuffer responseJsonStringBuffer = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            responseJsonStringBuffer.append(inputLine);
        }
        in.close();
        String responseJsonStr = responseJsonStringBuffer.toString();
        if(ObjectUtils.isEmpty(responseJsonStr)){
            logger.error(String.format("The connected http URL connection 's response content is empty!", connectionAlias));
            return "{}";
        }
        return responseJsonStr;
    }

    /**
     * 获取 信任指定SSL证书的 SSLContext
     * @return
     */
    public static SSLContext getAllowTargetSslSSLContext(String keyStoreFilePath, String keyStorePassword) throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, KeyManagementException {
        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());//keystore.type=jks[default] | configFile: $JAVA_HOME/jre/lib/security/java.security

        FileInputStream keyStoreFileInputStream = new FileInputStream(keyStoreFilePath);
        keyStore.load(keyStoreFileInputStream, keyStorePassword.toCharArray());

        //FileInputStream keyStoreFileInputStream = new FileInputStream(keyStoreFilePath);//如 : "root.crt"
        //CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
        //Certificate certificate = certificateFactory.generateCertificate(keyStoreFileInputStream);
        //keyStore.load(null, null);
        //keyStore.setCertificateEntry("ca", certificate);

        String trustManagerFactoryAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(trustManagerFactoryAlgorithm);
        trustManagerFactory.init(keyStore);

        SSLContext sslContext = SSLContext.getInstance("TLS");

        //sslContext.init(null, trustManagerFactory.getTrustManagers(), null);//或:
        sslContext.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom());

        return sslContext;
    }

    /**
     * 获取 SSLSocketFactory
     * @note 外部直接使用本方法即可
     */
    public static SSLSocketFactory getSSLSocketFactory(SSLContext sslContext){
        //LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(context);//或:
        SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
        return sslSocketFactory;
    }

    /**
     * 信任所有SSL,为 HttpsURLConnection 设置信任所有SSL的策略
     * @useage
     *  在所有https开始进行请求之前,执行一次即可: AllowAllSslHTTPSTrustManager.allowAllSSL();//信任所有证书
     * @note 外部直接使用本方法即可
     */
    public static void setDefaultSSLSocketFactoryForHttpsURLConnection(SSLContext sslContext){
        HttpsURLConnection.setDefaultSSLSocketFactory( getSSLSocketFactory(sslContext) );
    }

    /**
     * @useage
     *   HttpGet request = new HttpGet(url);
     *   request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) ...");
     *   CloseableHttpResponse response = httpclient.execute(request);
     *   String responseBody = readResponseBody(response);
     *   System.out.println(responseBody);
     * @return
     */
    public static CloseableHttpClient setDefaultSSLSocketFactoryForHttpClient(SSLContext sslContext){
        LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory( sslContext );//或:
        //SSLSocketFactory sslSocketFactory =  getSSLSocketFactory();
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(sslSocketFactory)
                .build();
        return httpclient;
    }
}

Client

public void test(){
   /** step0 准备参数 **/
	String apiConnection = "fileTextDownloadApiRequest";
	Map<String, String> requestProperties = new HashMap<>();

	/** step1 设置租户代码 **/
	if(isEnableAgentCode){
		requestProperties.put(Constants.AgentCode.AGENT_CODE_REQUEST_HEADER, agentCode);
		requestProperties.put("requester",  "FLINK_JOB#" + Constants.JOB_NAME);//标识请求方,便于问题溯源
	}

	/** step2 发起API请求,获得连接 **/
	HttpURLConnection connectedHttpURLConnection = NetworkRequestUtils.getHttpURLConnection(fileUri, requestProperties);
	/** step3 判定是否请求成功 **/
	boolean isRequestSuccess = true;
	try {
		isRequestSuccess = NetworkRequestUtils.isRequestSuccess(connectedHttpURLConnection, apiConnection);
		log.debug(String.format("Success to build the api request for `%s`.fileUri : %s, agentCode : %s, isEnableAgentCode : %s"
				, apiConnection
				, fileUri
				, agentCode
				, isEnableAgentCode
		));
	} catch (Exception exception){
		isRequestSuccess = false;
		log.error(exception.getMessage());
		log.error(String.format("Fail to build the api request for `%s`.fileUri : %s, agentCode : %s, isEnableAgentCode : %s"
				, apiConnection
				, fileUri
				, agentCode
				, isEnableAgentCode
		));
		exception.printStackTrace();
	}

	/** step4 解析 文件 + 断开连接 **/
	Map<String, List<Signal>> signalMapList = null;
	if(isRequestSuccess){
		signalMapList = XXXFileUtils.parseXXXFileToSignalsDto(connectedHttpURLConnection.getInputStream());
	}

	/** step5 断开连接 **/
	connectedHttpURLConnection.disconnect();
	log.debug(String.format("disconnected the http url connection(`%s`)!", apiConnection));

	return signalMapList;
}

F.2 AllowAllSslHTTPSTrustManager

import javax.net.ssl.*;
import java.security.*;
import java.security.cert.X509Certificate;

/**
 * HTTPS信任证书管理器
 * @reference-doc
 *  [1] 使用HttpsURLConnection的3种方法小结 - CSDN - https://blog.csdn.net/suyimin2010/article/details/81025083
 */
public class AllowAllSslHTTPSTrustManager implements X509TrustManager {

    private static TrustManager[] trustManagers;
    private static final X509Certificate[] acceptedIssuers = new X509Certificate[] {};

    @Override
    public void checkClientTrusted( java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
        // To change body of implemented methods use File | Settings | File
        // Templates.

        // Do Nothing | don't check / allow all
    }

    @Override
    public void checkServerTrusted(
            java.security.cert.X509Certificate[] x509Certificates, String s)
            throws java.security.cert.CertificateException {
        // To change body of implemented methods use File | Settings | File
        // Templates.
        // Do Nothing | don't check / allow all
    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return acceptedIssuers;
    }

    /**
     * 获取 信任全部 SSL/TLS CA证书的 SSLContext
     * @note 外部直接使用本方法即可
     */
    public static SSLContext getAllowAllSslSSLContext() {
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
            @Override
            public boolean verify(String arg0, SSLSession arg1) {
                // TODO Auto-generated method stub
                return true;
            }
        });

        SSLContext context = null;
        if (trustManagers == null) {
            trustManagers = new TrustManager[] { new AllowAllSslHTTPSTrustManager() };
        }

        try {
            context = SSLContext.getInstance("TLS");
            //context.init(null, trustManagers, null);//或:
            context.init(null, trustManagers, new SecureRandom());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            throw new RuntimeException( e );
        } catch (KeyManagementException e) {
            e.printStackTrace();
            throw new RuntimeException( e );
        }

        return context;
    }
}

X 参考文献

  • keytool

./server -Djavax.net.ssl.trustStore=cacerts -Djavax.net.ssl.trustStorePassword=changeit
./server -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts/cacerts -Djavax.net.ssl.trustStorePassword=changeit

封装了一个自动化安装证书的工具类InstallCert.java

当您看到错误the trustAnchors parameter must be non-empty时,通常意味着无法找到KeyStore文件。

-Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=jks -Djavax.net.debug=ssl
-Dweblogic.security.CustomTrustKeyStoreFileName=/myapp/app.jks -Dweblogic.security.TrustKeyStore=CustomTrust -Dweblogic.security.CustomTrustKeyStorePassPhrase=XXXXXPWD -Dweblogic.security.CustomTrustKeyStoreType=jks

openjdk缺乏安全证书库 / mvn clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true / bin/mvn目录下配置全局命令

posted @ 2024-04-03 18:31  千千寰宇  阅读(262)  评论(1编辑  收藏  举报