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

希望这可以帮助.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。