最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何在 Apache 中验证 SSL 证书的指纹信息
时间:2026-07-10 09:52:52 编辑:袖梨 来源:一聚教程网
验证SSL证书指纹需比对公钥SHA-256哈希值,用OpenSSL从证书和私钥分别提取公钥并计算指纹,二者一致才证明配对;还可检查有效期、签发者、SAN及Java truststore中证书指纹。
验证 SSL 证书指纹,核心是比对证书公钥的哈希值,而不是证书文件本身或私钥内容。Apache 不提供内置命令直接输出指纹,必须借助 OpenSSL 工具提取并计算——这是判断证书是否真实、未被篡改、且与私钥配对的最可靠方式。
提取证书公钥指纹(SHA-256)
从 PEM 格式证书(如 server.crt)中提取公钥,并计算其 SHA-256 指纹:
openssl x509 -in server.crt -noout -pubkey | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256
注意:若证书含完整链(含中间 CA),需先分离出服务器证书(即第一个 BEGIN CERTIFICATE 到对应 END CERTIFICATE 的部分),否则指纹会不一致。
提取私钥对应公钥指纹
从私钥(如 server.key)推导出公钥,并计算相同算法的指纹:
- 无密码私钥:
openssl rsa -in server.key -noout -pubkey | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 - 有密码私钥:加
-passin pass:yourpassword,例如openssl rsa -in server.key -passin pass:123456 -noout -pubkey | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256
两个命令输出的十六进制哈希值必须完全一致,才说明该私钥与证书真正配对。
快速检查证书有效期与签发信息
指纹验证之外,常需确认证书基础状态:
- 查看有效期:
openssl x509 -in server.crt -noout -dates - 查看签发者和主体:
openssl x509 -in server.crt -noout -issuer -subject - 查看 SAN(域名列表):
openssl x509 -in server.crt -noout -ext subjectAltName
这些信息可辅助排查浏览器提示“证书不受信任”或“域名不匹配”等问题。
用 keytool 查看 Java 导入证书的指纹(适用于 Java 客户端场景)
若证书已导入 Java truststore(如 cacerts),可用 keytool 验证其指纹:
keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts -alias your_alias- 输出中会包含 Certificate fingerprints,含 MD5、SHA-1、SHA-256 等——比对 SHA-256 值是否与 OpenSSL 输出一致即可。
注意:keytool 默认使用 SHA-256,但显示格式为带冒号分隔的大写十六进制,OpenSSL 输出为无分隔小写;比对前建议统一格式或用脚本清洗。
相关文章
- EROLABS工作实验室游戏网址如何打开-EROLABS实验室游戏网页登录入口链接汇总 07-22
- 爱看漫画免费看·入口高清-爱看漫画免费看·画质优选 07-22
- 鹅鸭杀拉铃游戏黑话详情 07-22
- 明日方舟终末地物理队玩法详情 07-22
- MANWA漫蛙网页版-漫蛙MANWA2在线网页 07-22
- 雄心之上孙权怎么样 07-22