在遵循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
时,我发现cfssl
在multirootca需要HTTPS时正在发送HTTP请求。
我无法找到的cfssl文档中没有任何内容指示如何强制cfssl对证书请求使用HTTPS,而Mike的帖子指出,此时它应该“起作用”。
有人使用最新版本的cfssl成功了吗?还是我错过了一些琐碎的事情?
注意:在此之前,我确实必须修改request-profile.json才能从ca服务器中删除<:port>
答案 0 :(得分:0)
因此,在进行了几次试验/麻烦之后,解决方案非常简单。在request-profile.json
中,URI必须为https://<ca_server>:<port>
。
这个github问题https://github.com/cloudflare/cfssl/issues/898帮助我指出了正确的方向。
此外,如果其他任何事情发生并卡住了,也不要从https://pkg.cfssl.org/下载二进制文件,因为它们已经严重过时了。使用Go安装是获取可在我的Q(以及CloudFlare博客)中提到的文章中实际使用的最新版本的最佳方法。