在Caddy中,当我禁用auto_https
并将tls
证书和密钥设置为主机上的证书和密钥,并让我的上游应用程序(s)使用相同的证书,我不断收到一个错误,说tls: bad certificate
。这在NGINX中工作,我试图复制我在NGINX中所做的事情,但没有用。请注意我没有权限更改证书的管理方式。我们位于企业飞地上,而且我们需要使用他们的官方PKI。即使我可以获得在覆盖服务网络上使用证书的许可,在那里它们将被隔离,服务仍然必须调用飞地网络上的其他服务,而且我无法让其他服务信任我的Caddy示例管理的证书。2因此,如果您愿意,请将讨论集中在我提供的证书和配置可能存在的问题上。
我已经尝试了文档中所有可能改变行为的选项,我当前的方法可以从my github repository克隆而来,如果你有一台运行podman的机器,你就可以运行它,Caddy文件展示了我的方法:
{
debug
auto_https off
ocsp_stapling off
}
:8443 {
tls /certs/test.crt /certs/test.key
handle /greeting-service/* {
reverse_proxy https://greeting-service:8443 {
header_up Host {env.OUTER_HOST}
transport http {
tls_insecure_skip_verify
tls_server_name {env.OUTER_HOST}
tls_trusted_ca_certs /certs/trust.pem
tls_client_auth /certs/test.crt /certs/test.key
}
}
}
}
我也试过将主机头设置为{upstream_hostport}
,但结果是一样的。提前感谢任何能为我指明更好方向的人。
1条答案
按热度按时间qq24tv8q1#
原来我是用CA证书签名证书,然后立即通过自签名覆盖它。当我解决了这个问题后,事情似乎更好地工作了。然后我尝试了一些选项,并找到了成功/工作配置: