我正在按照教程在 Ubuntu 18.04 基本操作系统上通过 kvm2 虚拟机中设置 minikube 服务器来实现 Kubernetes 中的 hyperledger fabric。在某些时候,我需要
curl https://dubi/cainfo ,
其中 dubi 是在 /etc/hosts 中定义的主机,指向 minikube 服务器的 IP,但我收到以下错误:
curl: (60) SSL certificate problem: unable to get local issuer certificate
当做
curl https://dubi/cainfo -k ,
它按预期工作,我可以看到证书。我想知道是否有办法让 minikube 服务器可 tls 调用?
到目前为止,我尝试的是为在 minikube 中运行的 kubernetes 服务编写一个扩展:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mock-server
spec:
tls:
- secretName: dubi-tls
hosts:
- dubi
rules:
- host: dubi
http:
paths:
- path: /
backend:
serviceName: kubernetes
servicePort: 443 ,
使用以下命令创建 tls 密钥
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout dubi.key -out dubi.crt -subj "/CN=dubi" -days 365,
和
kubectl apply -f kubernetes.yaml
。
不幸的是,这不起作用,我仍然收到上述错误。我尝试执行的操作是否存在任何错误,或者是否有更好且有效的方法来执行此操作?
答案1
标准证书 ca--tls 的问题在于它只有一个密钥,而没有 .crt 条目。使用 openssl 创建密钥对,生成一个密钥,告诉 ca-hlf 服务将它们用作证书,并将证书和密钥添加到 /etc/ssl/certs 和 /etc/ssl/private 即可解决问题。