Java 无法使用Quarkus找到请求目标的有效认证路径

Java 无法使用Quarkus找到请求目标的有效认证路径,java,ssl,quarkus,Java,Ssl,Quarkus,我已使用基于Quarkus的KeyClope保护我的web应用程序。启动应用程序时: ./mvnw clean compile quarkus:dev 它告诉我: io.quarkus.oidc.OIDCException: OIDC server is not available at the 'quarkus.oidc.auth-server-url' URL. Please make sure it is correct. Note it has to end with a realm

我已使用基于Quarkus的KeyClope保护我的web应用程序。启动应用程序时:

./mvnw clean compile quarkus:dev
它告诉我:

io.quarkus.oidc.OIDCException: OIDC server is not available at the 'quarkus.oidc.auth-server-url' URL. Please make sure it is correct. Note it has to end with a realm value if you work with Keycloak, for example: 'https://localhost:8180/auth/realms/quarkus'

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
密钥斗篷服务器正在设置证书
https://acme-staging-v02.api.letsencrypt.org/directory
(不是有效的证书),因为它是一个开发环境

Quarkus上的密钥斗篷配置:

quarkus.oidc.auth-server-url=https://dev.oic.databaker.io/auth/realms/databaker
quarkus.oidc.client-id=svc
quarkus.oidc.credentials.secret=!!!secret!!!
quarkus.keycloak.policy-enforcer.enable=true
quarkus.keycloak.policy-enforcer.paths.1.path=/
quarkus.keycloak.policy-enforcer.paths.1.enforcement-mode=DISABLED
quarkus.ssl.native=false

如何绕过错误?

让我们对证书进行加密是为了测试,并且不受系统中CAs的信任

您需要将根证书添加到受信任的CA证书列表中

详情见:

登台环境中间证书(“假证书”) 中间X1”)由中不存在的根证书颁发 浏览器/客户端信任存储。如果您希望修改仅测试客户端 要出于测试目的信任登台环境,您可以通过 将“假LE Root X1”证书添加到测试信任存储。 重要提示:不要将登台根目录或中间目录添加到信任 用于普通浏览或其他活动的存储,因为 它们未经审计或与我们的产品保持相同的标准 根,所以除了测试之外,其他任何东西都不安全


KeyClope服务器在Kubernetes上运行,用于生成证书。我必须在应用程序或Kubernetes上添加
伪LE Root X1
?应用程序需要验证Keyclock提供的Let's Encrypt证书,因此您的应用程序需要CA证书。或者更好的是,使用真正的Let's Encrypt证书,而不是来自临时环境的证书,该证书仅用于测试。我应该使用真正的证书吗?如果您的整个堆栈都在dev或staging中,那么staging Let's Encrypt是正确的选择,您只需要在适当的地方添加CA。请确保使用real,让我们为生产加密证书。