在传输模式下,我设法在两个(虚拟)主机之间建立了一个IPsec连接,现在我希望服务器用OCSP验证客户端的证书。在第三个主机中,我运行了一个OCSP响应程序(openssl ocsp -port 80 ...)。我可以看到服务器如何能够到达OCSP、发送查询和获得答复,但最终验证失败了。
下面是日志在服务器( IPsec响应程序)中的内容:
charon: 01[CFG] checking certificate status of "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=client@localhost"
charon: 01[CFG] requesting ocsp status from 'http://ocsp.localhost' ...
charon: 01[CFG] using trusted ca certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=Tecnalia Root CA"
charon: 01[CFG] reached self-signed root ca with a path length of 0
charon: 01[CFG] using trusted certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG] using certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG] no issuer certificate found for "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG] ocsp response verification failed
charon: 01[CFG] ocsp check failed, fallback to crl为了方便起见,我在所有主机中复制了相同的证书文件(输出修整):
/etc/ipsec.d# ls -lR
./cacerts:
total 4
-rw-r--r-- 1 root root 1367 Nov 2 09:53 ca.cert.pem
./certs:
total 8
-rw-r--r-- 1 root root 1432 Nov 2 09:53 client.cert.pem
-rw-r--r-- 1 root root 1700 Nov 2 09:53 localhost.cert.pem
./crls:
total 0
./ocspcerts:
total 4
-rw-r--r-- 1 root root 1379 Nov 10 09:32 ocsp.cert.pem这是一个非常简单的路径,CA (ca.cert.pem)对所有证书进行签名--服务器证书(localhost.cert.pem)、客户端证书(client.cert.pem)和OCSP响应程序(ocsp.cert.pem)使用的证书。
这就是我在服务器的ipsec.conf中拥有的内容:
ca strongswan-ca
cacert=ca.cert.pem
ocspuri=http://ocsp.localhost
auto=add我认为每件事都围绕着那个恶心的“没有发证人发现”错误,但到目前为止还不知道为什么会发生这种情况。如果我使用openssl查询OCSP响应程序,它不会提供任何验证错误。
发布于 2017-11-10 15:48:44
好吧,原来这个
为了方便起见,我在所有主机中复制了相同的证书文件
还有这个
如果我使用openssl查询OCSP响应程序,它不会给出任何验证错误
都是假的。在某种程度上,我弄错了我的密钥,OCSP服务器中的OCSP证书/密钥与其他机器中的OCSP证书/密钥不同。所以@ecdsa对他们的评论是完全正确的。
在我发布的配置中,一切都很好,一旦我重新生成了所有的键和证书,一切就都正常了。
https://serverfault.com/questions/882816
复制相似问题