【问题标题】:Keycloak Error with Docker and Letsencrypt certificates againDocker 和 Letsencrypt 证书再次出现 Keycloak 错误
【发布时间】:2020-01-25 12:58:57
【问题描述】:

我建立了一个新网站,并希望使用以下命令在 Docker 设置中运行 Keycloak:

docker run \
 -v /etc/letsencrypt/live/data-mastery.com/fullchain.pem:/etc/x509/https/tls.crt \
 -v /etc/letsencrypt/live/data-mastery.com/privkey.pem:/etc/x509/https/tls.key \
 -e KEYCLOAK_USER=myadmin \
 -e KEYCLOAK_PASSWORD=mypassword \
 -e PROXY_ADDRESS_FORWARDING=true \
 -p 8443:8443 jboss/keycloak

这是我的 nginx:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

}

server {
  listen                443;
  server_name           data-mastery.com;


  ssl on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;

  ssl_certificate /etc/letsencrypt/live/data-mastery.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/data-mastery.com/privkey.pem; # managed by Certbot

   location /auth/ {
       proxy_pass          https://127.0.0.1:8443;

       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 600s;

       proxy_redirect    off;
       proxy_set_header  Host             $http_host;
       proxy_set_header  X-Real-IP        $remote_addr;
       proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
       proxy_set_header  X-Forwarded-Proto $scheme;
     }

}



server {
    if ($host = data-mastery.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 ;
    listen [::]:80 ;
    server_name data-mastery.com;
    return 404; # managed by Certbot

}

我收到以下错误/警告,这实际上有助于我查看 Keycloak 是否存在有效的 SSL 设置:

警告:在没有服务器身份的情况下建立 SSL 连接 不推荐验证
.根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 要求 SSL 如果没有显式选项,则必须默认建立连接 放。为了符合现有的应用程序没有
t 使用 SSL,verifyServerCertificate 属性设置为“false”。 您需要通过设置 useSSL=false 来显式禁用 SSL,或者 设置 useSSL=true 并为 s 提供信任库
服务器证书验证。

我设置了所有密码、ssl 协议,但它仍然无法正常工作,即使似乎存在有效的 SSL 连接。但是,当我访问我的 /auth 端点时,我得到一个错误。我很无奈。

ERROR [io.undertow.request] (默认 I/O-1) 之后关闭 SSLConduit 握手异常:javax.net.ssl.SSLHandshakeException:没有密码 共同套房

【问题讨论】:

    标签: docker ssl keycloak


    【解决方案1】:

    也许您可以添加您的配置接受的密码列表。 试试看:

    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

    你也可以配置想要的协议

    ssl_protocols TLSv1.2 TLSv1.3;

    错误 [io.undertow.request](默认 I/O-1)在握手异常后关闭 SSLConduit:javax.net.ssl.SSLHandshakeException:没有共同的密码套件

    此错误告诉我们您的客户端和您的服务器没有共同的密码来通信。 检查客户端使用的密码和服务器使用的密码。确保至少有一个共同点

    【讨论】:

    • 不幸的是没有帮助:(
    • 在哪里可以看到?我在 ssllabs.com 上检查了它,至少证书本身似乎工作正常。还有什么可能导致错误?我的意思是,docker 命令没有改变,
    猜你喜欢
    • 2020-01-27
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2019-12-02
    相关资源
    最近更新 更多