![Alfresco Nginx SSL 反向代理](https://linux22.com/image/672684/Alfresco%20Nginx%20SSL%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86.png)
所以我一直在尝试通过我们的 Nginx 反向代理反向代理 Alfresco 5.0.d Community。目前,反向代理仅用于为我们的帮助台提供服务。这是我第一次设置反向代理,所以请耐心等待。此反向代理的主要目标是使用 Let's Encrypt 颁发的证书将我们所有的内部 Web 应用程序通过 TLS 加密到互联网。
我已成功将 Alfresco 从 http 内部反向代理到 http 外部或从 http:// xxxx:8080/share 反向代理到 http:// alfresco.companyname.com,据我所知,这非常有效。我为此使用的服务器块配置是:
server {
listen 80;
server_name alfresco.companyname.com;
rewrite ^/$ /share;
location / {
root /share/;
proxy_pass http://x.x.x.x:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
我们不愿意让服务器处于未加密的连接状态,因此我也一直尝试在此设置上启用 TLS,但登录后我一直收到错误页面。
启用 SSL 的服务器块:
server {
listen 443 ssl;
server_name alfresco.companyname.com;
ssl on;
ssl_certificate /etc/ssl/certs/alfrescochained.pem;
ssl_certificate_key /etc/ssl/private/alfrescopriv.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_prefer_server_ciphers on;
rewrite ^/$ /share;
location / {
root /share/;
proxy_pass http://x.x.x.x:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Alfresco 错误日志信息量不大,而且我是 Nginx 新手(我一开始尝试使用 Apache,但遇到了很多问题)。有人推荐尝试一下吗?
答案1
这只是猜测。但 Alfresco 可能会发出不安全的登录 cookie,而安全前端(非常正确)不会返回该 cookie。因此登录过程会停滞不前。
如果 Alfresco 支持,则有一个标头通常用于通知它客户端连接实际上是安全的。尝试:
proxy_set_header X-Forwarded-Proto $scheme;
答案2
我已经解决了这个问题。我更换了http://xxxx:8080和https://xxxx:8443。起初我忘了用 https 替换 http,但我记得这样做了,现在它正常工作了。我收到了与 Chrome 中的连接有关的不安全页面警告。我走出办公室,我的登录 cookie 过期了,重新登录后,不安全警告消失了,所以可能与此有关。