openssl - 验证最终用户证书和 SubCA 失败 OpenSSL
问题描述
我正在使用 3 个服务器进行实验室:
RootCA --> SubCA --> OpenVPN。
我使用 RootCA 签署了我的 SubCA 并验证它是否正常。
root@quanlm-rootca-openssl-lab:~/ca/root# openssl verify -CAfile rootca.crt subca1/subca.crt
subca1/subca.crt: OK
在签署 SubCA 时,我还在 RootCA 的 ca.conf 中设置了 X509V3 扩展:
X509v3 extensions:
X509v3 Basic Constraints:
CA:TRUE
接下来,我使用我的 subCA 签署 OpenVPN 服务器证书,当我验证证书时它失败,但是当我验证 crl 时,它可以
root@quanlm-subca-openssl-lab:~/ca/subca# openssl verify -crl_check -CAfile vpnserver/vpnserver.crl.chain vpnserver/vpnserver.crt
vpnserver/vpnserver.crt: OK
root@quanlm-subca-openssl-lab:~/ca/subca# openssl verify -CAfile subca.crt
vpnserver/vpnserver.crt
CN = SubCA, ST = Ha Noi, C = VN, emailAddress = rootca@actvn.edu.vn, O = Hoc Vien ky thuat mat ma, OU = Lop AT14
error 2 at 1 depth lookup: unable to get issuer certificate
error vpnserver/vpnserver.crt: verification failed
那么有人可以帮我解决这些问题吗?我无法运行 openVPN
Thu Nov 4 16:16:17 2021 us=279982 VERIFY ERROR: depth=1, error=unable to get issuer certificate: CN=SubCA, ST=Ha Noi, C=VN, emailAddress=rootca@actvn.edu.vn, O=Hoc Vien ky thuat mat ma, OU=Lop AT14
Thu Nov 4 16:16:17 2021 us=280016 OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
解决方案
我有两个建议:
- 为 openssl verify 命令添加详细标志(-verbose 标志),以查看错误的确切性质
- 将 RootCA 证书存储在您机器的 ROOT-CA 存储中 - 我认为 openssl 会尝试验证完整的证书链,但无法验证 SubCA(过程会有所不同,具体取决于您使用的 Linux 发行版)
推荐阅读
- android - Android 如何标准化电容设备上的估计压力
- python - 将熊猫数据框(df1)行值与另一个数据框(df2)列匹配,并更新数据框(df1)中不同列的行
- c# - 如何使用 C# 驱动程序 2.10.4 在 MongoDB 中查找特定字段的最小值
- reactjs - 用打字稿定义组件的最简单方法
- git - Git:将隐藏的更改合并到头部
- jboss - Keycloak - 在本机移动应用程序中使用旧版身份验证系统
- javascript - 将 cypress-image-snapshot 差异图像注入 Mochawesome 报告
- flask - Flask:如何为所有方法注册一个包装器
- django - ListView中多个上下文中特定上下文的分页在django中不起作用?
- php - Laravel ErrorException 未定义偏移量:添加 Route::Auth() 时为 0;