在Chef服务器上禁用SSL?

乌斯曼·伊斯梅尔(Usman Ismail)

我已经nginx['enable_non_ssl']=true/etc/opscode/chef-server.rb文件中设置并运行,chef-server-ctl reconfigure但是当我尝试为厨师卷曲http端口时,我仍然会得到重定向,这有点违反了此设置的目的。请参阅下面的错误。

我的chef-server.rb档案:

猫/etc/opscode/chef-server.rb

nginx['enable_non_ssl']=true
nginx['non_ssl_port']=80

运行重新配置:

Chef-server-ctl重新配置

Starting Chef Client, version 12.0.3
resolving cookbooks for run list: ["private-chef::default"]
[2015-05-25T13:12:26+00:00] WARN: Cookbook 'local-mode-cache' is empty or entirely chefignored at /opt/opscode/embedded/cookbooks/local-mode-cache
[2015-05-25T13:12:26+00:00] WARN: Cookbook 'local-mode-cache' is empty or entirely chefignored at /opt/opscode/embedded/cookbooks/local-mode-cache
[2015-05-25T13:12:26+00:00] WARN: Cookbook 'local-mode-cache' is empty or entirely chefignored at /opt/opscode/embedded/cookbooks/local-mode-cache
....

显示我仍然被重定向的卷曲命令:

卷曲http://chef-xxx.xxxxxx.com

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>openresty/1.7.10.1</center>
</body>
</html>

我如何才能使工作中的厨师服务器工作起来?

雷米·贝切拉斯(Remi Becheras)

我有同样的问题解决了

我在安装Chef Server(chef-manage v2.4.4)时遇到了同样的问题

您可以通过阅读已部署的厨师服务器的更改日志来查看您的厨师管理版本:http(s)://your-chef-server.com/changelog

在此处输入图片说明

我们想要什么

在专用服务器上安装我的Chef服务器实例后,它可以与SSL一起正常使用。

但是我们的生产服务器部署在专用VLAN中的专用主机上,并且用户通过作为反向代理运行的nginx Web服务器访问服务或Web应用程序。

因此,要使Chef服务器进入生产模式,我必须配置我的反向代理来代理请求:

这里是正确的请求/响应路由模式:

要求:

client    443 >> 443 chef.company.com (DNS: rev-proxy)
rev-proxy  80 >> 80  chef.vlan

回复:

rev-proxy  80 << 80  chef.vlan
client    443 << 443 chef.company.com

正常问题

但是,像您一样,chef服务器的默认配置会强制将SSL从反向代理重定向到vlan中的chef主机。这会导致无限重定向循环:

client     443 >> 443 rev-proxy
proxy       80 >> 80  chef.vlan
client      80 << 80  chef.company.com (redirect to https://$host$request_uri)
client     443 >> 443 rev-proxy
proxy       80 >> 80  chef.vlan
client      80 << 80  chef.company.com (redirect to https://$host$request_uri)
...
client     443 >> 443 rev-proxy
proxy       80 >> 80  chef.vlan
client      80 << 80  chef.company.com (redirect to https://$host$request_uri)
...

正常修复

因此,我们必须禁用SSL cook.vlan端。

正常的方法是编辑文件/opt/obscode.chef-server.rb(并创建它,如果它不存在),通过插入以下指令:

nginx['enable_non_ssl']=true

以及可选的(因为这已经是默认值)以下一项:

nginx['non_ssl_port']=80

因此,我们需要重新配置Chef服务器:

# chef-server-ctl reconfigure

但是厨师服务器中有一个错误

但是厨师模板配方中存在一个错误,该错误曾用于生成nginx confi文件。因此,当我们重新配置Chef服务器时,将忽略先前的指令。

因此,无限循环停留在那里。

错误工单:https : //tickets.opscode.com/browse/CHEF-3999

此外,您还可以看到以下其他资源:

https://github.com/chef/omnibus-chef/pull/57

https://docs.chef.io/config_rb_server.html

https://github.com/chef/chef-server/issues/973

解决问题

为了解决这种情况,我不得不从错误单中修改建议的解决方案。

在Chef主机上找到Nginx配置文件

root@chef-srv:~# find / -name nginx.conf
/opt/chef-manage/embedded/service/gem/ruby/2.2.0/gems/unicorn-4.9.0/examples/nginx.conf
/opt/opscode/embedded/service/gem/ruby/2.2.0/gems/unicorn-5.1.0/examples/nginx.conf
/opt/opscode/embedded/conf/nginx.conf
/var/opt/opscode/nginx/etc/nginx.conf

最后一个是嵌入式nginx conf文件。它包含以下集团代码,这是问题的根源:

# We support three options: serve nothing on non_ssl_port (80),
# redirect to https, or actually serve the API.
      server {
        listen 80;
        access_log /var/log/opscode/nginx/rewrite-port-80.log;
        return 301 https://$host$request_uri;
      }

查找源于嵌入式Nginx配置的Nginx配置配方

root@chef-srv:~# find / -name nginx.rb
/opt/chef-manage/embedded/cookbooks/omnibus-chef-manage/recipes/nginx.rb
/opt/chef-manage/embedded/cookbooks/cache/cookbooks/omnibus-chef-manage/recipes/nginx.rb
/opt/opscode/embedded/cookbooks/private-chef/recipes/nginx.rb
/var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/nginx.rb

第三是生成嵌入式nginx配置的模板:

/opt/opscode/embedded/cookbooks/private-chef/recipes/nginx.rb
  === > /var/opt/opscode/nginx/etc/nginx.conf

修正食谱

我们必须对其进行修复,请添加以下几行:

node.default ['private_chef'] ['nginx'] ['enable_non_ssl'] = true

我们应该将其附加到以下块:

# Save node attributes back for use in config template generation
node.default['private_chef']['nginx']['ssl_certificate'] ||= ssl_crtfile
node.default['private_chef']['nginx']['ssl_certificate_key'] ||= ssl_keyfile
node.default['private_chef']['nginx']['ssl_dhparam'] ||= ssl_dhparam

因此,最终的块代码如下所示:

# nano /opt/opscode/embedded/cookbooks/private-chef/recipes/nginx.rb

# Save node attributes back for use in config template generation
node.default['private_chef']['nginx']['ssl_certificate'] ||= ssl_crtfile
node.default['private_chef']['nginx']['ssl_certificate_key'] ||= ssl_keyfile
node.default['private_chef']['nginx']['ssl_dhparam'] ||= ssl_dhparam
node.default['private_chef']['nginx']['enable_non_ssl']=true

套用变更

最后,我们必须通过重新配置Chef服务器,从配方模板重新生成nginx配置文件:

# chef-server-ctl reconfigure

然后,路由模式将按预期工作。

享受!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Chef服务器上禁用SSL?

来自分类Dev

如何在MySQL社区服务器上禁用ssl插件?

来自分类Dev

如何在MySQL社区服务器上禁用ssl插件?

来自分类Dev

Ubuntu上Chef服务器上的Cookbook位置

来自分类常见问题

服务器上未启用SSL

来自分类Dev

Tomcat服务器上的SSL证书

来自分类Dev

Apache HTTP服务器上的SSL

来自分类Dev

更改开源Chef服务器上的节点的ipaddress

来自分类Dev

在Debian机器上配置Chef服务器11

来自分类Dev

食谱如何存储在Chef服务器上

来自分类Dev

Chef服务器安装在RHEL上失败

来自分类Dev

禁用SSL 3.0 Windows CE Web服务器

来自分类Dev

在Apache服务器上禁用HTTP选项

来自分类Dev

如何在Ubuntu服务器上禁用telnet?

来自分类Dev

在Spark中的Jetty服务器上禁用密码套件

来自分类Dev

如何在Ubuntu服务器上禁用telnet?

来自分类Dev

在MobileFirst服务器上禁用自动更新

来自分类Dev

在Spark中的Jetty服务器上禁用密码套件

来自分类Dev

如何在解析服务器上禁用 /files 端点

来自分类Dev

禁用服务器上的所有 jenkin cron

来自分类Dev

龙卷风服务器上的SSL错误

来自分类Dev

在服务器上找到SSL证书,密钥和CA

来自分类Dev

在Azure ubuntu Web服务器上安装SSL

来自分类Dev

IIS上服务器场的SSL CSR

来自分类Dev

在中文服务器SSL上安装PIP错误

来自分类Dev

龙卷风服务器上的SSL错误

来自分类Dev

在Fuseki服务器上启用HTTPS / SSL?

来自分类Dev

在Azure ubuntu Web服务器上安装SSL

来自分类Dev

Tomcat服务器上的SSL证书安装问题