我遵循各种教程和stackoverflow问题来学习如何创建自签名证书,确保它具有服务器alt名称,使用它为快速服务器配置https,并成功地从浏览器向服务器发出请求(之后)将证书作为受信任的证书添加到浏览器中。)
我重新下载了证书如下:
openssl s_client -showcerts -servername mydevserver -connect mydevserver:443 </dev/null
然后我将“开始证书”和“结束证书”之间的文本复制到/etc/ssl/thecert.crt
使用命令行工具点击同一个https端点不起作用,例如:
curl -v --cacert "/etc/ssl/thecert.crt" -H "Content-Type: application/json" https://mydevserver:443/api
我可以在详细输出中看到使用cacert的curl,但它仍然抱怨:
SSL certificate problem: unable to get local issuer certificate
答案 0 :(得分:0)
事实证明,自签名的证书不足以使其值得信赖&#34;。它需要由证书颁发机构签名。
我必须首先使用a创建自己的证书颁发机构(CA) 自签名证书,然后使用该结果证书 为相关服务器签署一份全新的CSR /证书。
然后,一旦将CA证书添加到本地CA存储中,curl就不会 甚至还需要--cacert参数;像其他https客户端一样 它可以验证从服务器收到的证书,因为它 将说我的CA签署,在本地机器上受信任。
希望这有助于某人。