我目前正在尝试建立一个环境,其中Rundeck在后面运行,nginx反向SSL代理。我针对这种情况在线找到了不同的教程,但是没有一个对我有用。我在运行rundeck和nginx的Linux环境中工作。我的rundeck loook的nginx配置文件如下所示:

server {
        access_log   /var/log/nginx/rundeck.access.log  main;


        listen 443;
        listen       [::]:443;
        ssl    on;
        ssl_certificate    /etc/nginx/conf.d/cert.crt;
        ssl_certificate_key    /etc/nginx/conf.d/key.rsa;

        location / {
          proxy_pass http://localhost:4440/;
          proxy_set_header        Host            $host;
          proxy_set_header        X-Real-IP       $remote_addr;
          proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Ssl on;
}

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }


此外,我在rundeck中配置了这些参数:
framework.server.url = https://localhost:4440grails.serverURL=https://lde71d6p.de.top.com:443
我尝试使用https或仅使用http(不带port和带port)的不同组合。它们都无法正常工作。

使用当前配置,我得到以下错误情况。
如果我尝试调用http://hostname.top.com->连接错误(似乎很好,因为nginx未处理端口80)
https://hostname.top.com->获取302并重定向到http://hostname.top.com/user/login;jsessionid=xxxxxxx,然后得到连接错误。
https://hostname.top.com/user/login让我直接进入rundeck的登录界面。一切都很好。

谁能帮助我解决我首先提到的错误情况?

亲切的问候,

最高

最佳答案

要在SSL代理后面运行Rundeck,需要以下三个设置:

https://github.com/rundeck/rundeck/wiki/FAQ#can-i-do-ssl-offloading


将RunDeck设置为http
在概要文件中,将选项-Drundeck.jetty.connector.forwarded = true添加到RDECK_JVM
将framework.rundeck.url和grails.serverURL设置为使用https


就您而言,个人资料设置似乎尚未完成。

该配置文件位于/etc/rundeck/profile中。 (可能取决于分布)

将选项-Drundeck.jetty.connector.forwarded=true添加到RDECK_JVM,如下所示:

RDECK_JVM="-Djava.security.auth.login.config=$JAAS_CONF \
       -Dloginmodule.name=$LOGIN_MODULE \
       -Drdeck.config=$RDECK_CONFIG \
       -Drundeck.server.configDir=$RDECK_SERVER_CONFIG \
       -Dserver.datastore.path=$RDECK_SERVER_DATA/rundeck \
       -Drundeck.server.serverDir=$RDECK_INSTALL \
       -Drdeck.projects=$RDECK_PROJECTS \
       -Drdeck.runlogs=$RUNDECK_LOGDIR \
       -Drundeck.config.location=$RDECK_CONFIG/rundeck-config.properties \
       -Djava.io.tmpdir=$RUNDECK_TEMPDIR \
       -Drundeck.server.workDir=$RUNDECK_WORKDIR \
       -Dserver.http.port=$RDECK_HTTP_PORT \
       -Drundeck.jetty.connector.forwarded=true"

关于ssl - Rundeck背后和SSL代理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44410666/

10-10 14:34