使用cfssl和multirootca进行远程签名会发送HTTP而不是HTTPS

时间:2019-08-07 15:41:49

标签: ssl openssl

在遵循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>

1 个答案:

答案 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博客)中提到的文章中实际使用的最新版本的最佳方法。