温馨提示×

linux openssl怎样验证

小樊
40
2026-09-16 18:06:14
栏目: 云计算

在 Linux 下使用 OpenSSL 做“验证”,通常是指下面几类场景之一。我按最常见用途给你说明,你可以对号入座。


一、验证证书是否由某个 CA 签发(证书链验证)

1️⃣ 验证证书(server.crt)是否由 CA(ca.crt)签发

openssl verify -CAfile ca.crt server.crt

✅ 成功示例:

server.crt: OK

❌ 失败示例:

error 20 at 0 depth lookup: unable to get local issuer certificate

2️⃣ 使用中间证书 + 根证书验证

cat intermediate.crt root.crt > ca_chain.crt
openssl verify -CAfile ca_chain.crt server.crt

二、验证证书内容(查看证书信息)

查看证书详细信息

openssl x509 -in server.crt -noout -text

常用参数:

  • -subject:查看主题
  • -issuer:颁发者
  • -dates:有效期
  • -serial:序列号
openssl x509 -in server.crt -noout -subject -issuer -dates

三、验证私钥和证书是否匹配

1️⃣ 计算私钥 MD5

openssl rsa -in server.key -noout -modulus | openssl md5

2️⃣ 计算证书 MD5

openssl x509 -in server.crt -noout -modulus | openssl md5

✅ 两个值一样 → 匹配


四、验证 HTTPS 服务器证书(在线验证)

openssl s_client -connect example.com:443

只看验证结果:

echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -issuer -dates

使用指定 CA 验证:

openssl s_client -connect example.com:443 -CAfile ca.crt

五、验证 CSR(证书请求)

openssl req -in server.csr -noout -text

验证 CSR 和私钥是否匹配:

openssl req -in server.csr -noout -modulus | openssl md5
openssl rsa -in server.key -noout -modulus | openssl md5

六、验证签名(文件 + 签名)

签名

openssl dgst -sha256 -sign private.key -out file.sig file.txt

验证

openssl dgst -sha256 -verify public.pem -signature file.sig file.txt

✅ 输出:

Verified OK

七、验证 CRL(证书吊销列表)

openssl verify -CRLfile crl.pem -CAfile ca.crt server.crt

如果你能告诉我你具体想验证什么(如:HTTPS、自签证书、K8s、Nginx、邮件证书等),我可以给你更精确的命令。

0