java – 查找证书是自签名还是CA签名

我有一个网络应用程序,允许用户上传pkcs12.我将数据库中的pkcs12存储为二进制文件.有没有办法知道pkcs12中的证书是自签还是CA签?

我在tomcat上运行一个Java Web应用程序,并且可以使用openssl.

解决方法

这有点黑客,但openssl x509命令可以报告发行者和主题.如果主体和发行人是相同的,则是自签名的;如果它们不同,那么它是由CA签署的. (严格来说,自己也签署了很多自签证书.)

在测试这个理论的同时,我进行了一些测试;它运行的东西如下:

cd /etc/ssl/certs
for f in *.0 ; do openssl x509 -in $f -issuer | head -1 > /tmp/$f.issuer ; openssl x509 -in $f -subject | head -1 > /tmp/$f.subject ; done
 cd /tmp
 sed -i -e s/issuer=// *.issuer
 sed -i -e s/subject=// *.subject
 cd /etc/ssl/certs/
 for f in *.0 ; do diff -u /tmp/$f.issuer /tmp/$f.subject ; done

希望这可以帮助.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...