pde*_*eva 157 security ubuntu ssl openssl ssl-certificate
我有一个证书包 .crt 文件。
做openssl x509 -in bundle.crt -text -noout只显示根证书。
我如何查看所有其他证书?
Ben*_*kin 194
http://comments.gmane.org/gmane.comp.encryption.openssl.user/43587建议采用这种单行方式:
openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -text -noout
Run Code Online (Sandbox Code Playgroud)
它确实对我有用,但我不明白细节所以不能说是否有任何警告。
小智 38
openssl storeutl -noout -text -certs bundle.crt
Run Code Online (Sandbox Code Playgroud)
该openssl storeutl应用程序已添加到 OpenSSL 1.1.1 中。
该storeutl命令可用于显示从给定 URI 获取的内容。
-noout防止 PEM 数据输出-text以文本形式打印出对象,如-text输出openssl x509-certs仅选择给定 URI 中的证书小智 33
Javakeytool可以解决这个问题:
keytool -printcert -v -file <certs.crt>
Run Code Online (Sandbox Code Playgroud)
注释: Windows 双击不起作用。Windows 仅读取密钥库中的第一个证书,并从其内置证书库中自动扩展信任链。
结果:
.crt不显示文件中第一个证书以外的所有内容.crt。这可能会导致错误的结论。Mad*_*ter 22
遵循这个常见问题让我找到了这个 perl 脚本,它强烈建议我openssl没有本地支持处理捆绑中的第n个证书,相反我们必须使用一些工具在输入每个之前对输入进行切片和切块证书到openssl. 这个 perl 脚本,从上面链接的 Nick Burch 的脚本中自由改编,似乎可以完成这项工作:
#!/usr/bin/perl
# script for splitting multi-cert input into individual certs
# Artistic Licence
#
# v0.0.1 Nick Burch <nick@tirian.magd.ox.ac.uk>
# v0.0.2 Tom Yates <tyates@gatekeeper.ltd.uk>
#
$filename = shift;
unless($filename) {
die("You must specify a cert file.\n");
}
open INP, "<$filename" or die("Unable to load \"$filename\"\n");
$thisfile = "";
while(<INP>) {
$thisfile .= $_;
if($_ =~ /^\-+END(\s\w+)?\sCERTIFICATE\-+$/) {
print "Found a complete certificate:\n";
print `echo \'$thisfile\' | openssl x509 -noout -text`;
$thisfile = "";
}
}
close INP;
Run Code Online (Sandbox Code Playgroud)
har*_*rmv 19
Oneliner 显示文件中每个证书的摘要。
openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -noout
Run Code Online (Sandbox Code Playgroud)
(相似 serverfault.com/a/755815/27515,但这提供了更短的输出,没有 --text 选项)。
例子:
$ openssl crl2pkcs7 -nocrl -certfile bundled.crt | openssl pkcs7 -print_certs -noout
subject=/C=NL/postalCode=5705 CN/L=City/street=Example 20/O=Foobar B.V./OU=ICT/OU=Wildcard SSL/CN=*.example.com
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
subject=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
subject=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
issuer=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Roo
Run Code Online (Sandbox Code Playgroud)
由于没有基于 awk 的解决方案:
$ cat ca-bundle | awk '/BEGIN/ { i++; } /BEGIN/, /END/ { print > i ".extracted.crt" }'
$ ls *.extracted.crt | while read cert; do openssl x509 -in $cert -text -noout; done
Run Code Online (Sandbox Code Playgroud)
第一个命令通过查找 BEGIN 和 END 行将捆绑包拆分为证书。第二个命令循环遍历提取的证书并显示它们。
| 归档时间: |
|
| 查看次数: |
153308 次 |
| 最近记录: |