在遵循Mike Newswanger的有关为Kubernetes构建安全PKI(https://www.mikenewswanger.com/posts/2018/kubernetes-pki/)的文章之后,我运行了指南中的最后一步,以从客户端计算机请求证书:cfssl gencert -config=request-profile.json -hostname=myhost.example.com -tls-remote-ca ca.pem -profile=default csr.json | cfssljson -bare myhost
错误是
{"code":7300,"message":"read tcp 192.168.122.106:37618-\u003e192.168.122.1:8888: read: connection reset by peer"}
在multirootca主机上使用
tcpdump
时,我看到当multirootca需要HTTPS时cfssl
正在发送HTTP请求。我无法找到的cfssl文档中没有任何内容指示如何强制cfssl对证书请求使用HTTPS,而Mike的帖子指出,此时它应该“起作用”。
有没有人使用最新版本的cfssl成功,或者我错过了一些琐碎的事情?
注意:在此之前,我确实必须修改request-profile.json以从ca服务器中删除。
最佳答案
因此,经过几次试验/试验,解决方案非常简单。在request-profile.json
中,URI必须为https://<ca_server>:<port>
。
这个github问题https://github.com/cloudflare/cfssl/issues/898帮助我指出了正确的方向。
另外,如果其他任何人遇到此问题并被卡住,请不要从https://pkg.cfssl.org/下载二进制文件,因为它们已经严重过时。使用Go安装是获得最新版本的最佳方法,该最新版本可以在我的Q(以及CloudFlare博客)中提到的文章中使用。
关于ssl - 使用cfssl和multirootca进行远程签名会发送HTTP而不是HTTPS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57398023/