# 更新至 Python 3.13 导致的自签名 CA 出现 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Authority Key Identifier
# 排查
| openssl verify -x509_strict -CAfile /data/ca.crt /data/web/web1.crt |
| |
| |
| |
# 重新生成 CA 证书
重新根据 ca.key 生成 ca.crt,只需替换 ca.crt 即可,已经颁发的证书仍正常使用。
# 复制一份 openssl.cnf(可选)
| sudo cp /etc/ssl/openssl.cnf openssl_ca.cnf |
# 调整 openssl.cnf
编辑 openssl_ca.cnf
并将其中 [ v3_ca ]
下的 keyUsage = cRLSign, keyCertSign
解除注释
| [ v3_ca ] |
| |
| |
| |
| |
| keyUsage = cRLSign, keyCertSign |
# 生成证书请求文件 csr(已有 csr 可忽略)
生成证书请求文件 csr,需要使用原 ca.crt
和 ca.key
| openssl x509 -x509toreq -in ca.crt -signkey ca.key -out new-ca.csr |
# 生成 ca 证书
| openssl x509 -req -days 3650 -extfile openssl_ca.cnf -extensions v3_ca -in new-ca.csr -signkey ca.key -out new-ca.crt |
# 测试
| openssl verify -x509_strict -CAfile new-ca.crt /data/web/web1.crt |
| |
| |
# 导入到系统可信 CA(可选)
| sudo cp new-ca.crt /usr/local/share/ca-certificates/ |
| sudo update-ca-certificates |
| |
| |
| |
| |
| |
| |
# 参考
https://www.cnblogs.com/liweifeng888/p/18648432
https://superuser.com/questions/738612/openssl-ca-keyusage-extension