openssl生成的CA证书无效
时间: 2024-12-31 22:42:01 浏览: 8
### OpenSSL 生成的 CA 证书无效的原因分析
当遇到 OpenSSL 生成的 CA 证书无效的情况时,通常有以下几个常见原因:
#### 1. 时间设置不正确
如果系统时间配置错误,可能会导致证书被认为尚未生效或已经过期。确保服务器的时间同步服务正常工作,并且当前时间为有效范围内的日期。
```bash
timedatectl status
```
可以用来检查系统的时区与时钟状态;必要时调整为正确的 UTC 或本地时间[^1]。
#### 2. 主体名称 (Subject Name) 和替代主体名称 (SANs) 不匹配
对于 Web 应用程序来说,浏览器会严格验证 SSL/TLS 证书中的域名是否与访问站点的实际 URL 完全一致。因此,在创建 CSR 请求文件时要特别注意指定准确完整的主机名作为 CommonName(CN),同时通过 X509v3 扩展字段添加 Subject Alternative Names(SAN)。
#### 3. 密钥长度不足
现代加密标准建议使用至少 2048 bit 的 RSA 私钥来保障安全性。较短位数密钥可能无法满足某些应用的安全策略要求而被拒绝接受。
```bash
openssl genrsa -out ca.key 4096
```
此命令用于生成强度更高的私钥材料。
#### 4. 自签名根证书未安装信任
由自己签发的顶级认证机构(Root CA)公钥证书需要手动导入客户端操作系统受信库内才能让其认可下级颁发的所有子证书链的有效性。这一步骤经常被人忽略从而引发握手失败等问题。
```bash
cp root_ca.crt /etc/pki/tls/certs/
update-ca-trust extract
```
上述指令展示了如何在基于 RedHat/CentOS 发行版上更新全局可信存储以包含新的自定义CA条目[^2]。
---
阅读全文