当前位置: 首页 > 面试题库 >

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

彭霄
2023-03-14
问题内容

我有一个网络应用程序,允许用户上传pkcs12。我将pkcs12作为二进制存储在数据库中。有什么办法让我知道pkcs12中的证书是自签名的还是CA签名的?

我正在tomcat上运行Java Web应用程序,并且可以使用openssl。


问题答案:

但是,我认为还有一些更重要的事情要解决- 为什么
人们想了解自签名证书。目标是什么?解决了什么问题?在大多数情况下,可能尝试将证书分为自签名和非自签名两堆是错误的方法。更好的方法几乎肯定是要验证任何给定证书都具有来自受信任证书颁发机构的有效签名链,并且与给定证书关联的任何连接均与该证书匹配。

这是我原始答案的其余部分。这可能不是您想要的。

这有点hacky,但是openssl x509命令可以报告发行者和主题。如果主题和发行者相同,则它是自签名的;如果它们不同,则由CA签名。(严格来说,很多自签名证书 也是
由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

希望这可以帮助。



 类似资料:
  • 我有一个带有这些命令的自签名证书链,并在Apache服务器上配置了它们 但是当我尝试 我从openssl中得到一个错误 用于生成证书的命令或配置文件有问题吗? [req] distinguished_name=req_distinguished_name x509_extensions=v3_ca dirstring_type=nobmp [req_distinguished_name] comm

  • 我正在云中的Ubuntu12.10服务器(AWS)上运行一个Apache CouchDB实例(1.3.0版)。我正在尝试让SSL在我的couchDB实例上工作。 基本的SSL设置非常简单。我已将我的证书和密钥放在一个目录中,并在我的本地应用程序中取消了以下行的注释。ini文件 我还确保这些文件的所有权是正确的。 这很好,couchDB服务器启动,您可以导航到https://mycouchdbser

  • 我的客户希望我将他们的CA证书集成到Spring Boot应用程序中。我习惯于使用自签名证书,但不是这个。然而,我遵循以下步骤获得了成功。 对于创建密钥库: 为了验证jks: 用于导入CA: Spring Boot相关内容如下: 现在,如果我从浏览器,它显示。但在浏览器中期待挂锁。 我确信我错过了一些重要的步骤。 谢谢,任何帮助。谢谢。

  • 问题内容: 我想签署我的应用程序,但是我不希望它的用户在安装我的应用程序之前在他们的手机上安装证书。是否可以使用自签名证书对j2me midlet进行签名? 问题答案: 这是可能的,为此您需要从Verisign购买签名证书。我确实有相同的签名证书,费用为20000卢比(一次)。

  • 我正在尝试从我的android应用程序访问HTTPS url。我有服务器端的自签名证书(server_certificate.cer)。 我想知道如何添加自签名证书到volley网络请求信任我的自签名证书。使用http://blog.applegrew.com/2015/04/using-pinned-self-signed-ssl-certificate-with-android-volley/