我有一个网络应用程序,允许用户上传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
希望这可以帮助.