【发布时间】:2019-07-26 19:03:46
【问题描述】:
我正在尝试通过 VirtualBox bosh-lite VM 在本地部署 CF,但我遇到了公司代理,它在连接到 Internet 之前注入了自签名证书。
我已通过 SSH 将 CA 添加到操作系统级别的受信任证书中,但我仍然在链中获得不受信任的证书。
是否可以将企业 CA 放入配置中,以便所有项目都能成功下载/安装?
【问题讨论】:
标签: cloud-foundry cf-bosh
我正在尝试通过 VirtualBox bosh-lite VM 在本地部署 CF,但我遇到了公司代理,它在连接到 Internet 之前注入了自签名证书。
我已通过 SSH 将 CA 添加到操作系统级别的受信任证书中,但我仍然在链中获得不受信任的证书。
是否可以将企业 CA 放入配置中,以便所有项目都能成功下载/安装?
【问题讨论】:
标签: cloud-foundry cf-bosh
BOSH 通过创建“机器”并安装适当的软件并在这些“机器”中运行,将 CF、Zookeeper、Kubernetes 等东西部署到“云”。在像 Amazon Web Services 或 VMWare vSphere 这样的“典型”云中,“机器”就是典型的虚拟机。
BOSH 还可以将 Docker、Kubernetes 或 Garden 等各种容器运行时视为“云”,在 BOSH-Lite 案例中,它将 Garden 视为云。所以在 BOSH-Lite 案例中,“机器”实际上是在 VirtualBox VM 中运行的 Linux 容器。因此,当您在 VM 的操作系统级别安装证书时,这不适用于在 VM 中作为容器运行的东西。
BOSH 确实有一种使用trusted_certs 属性将可信证书注入其管理的每台机器的本地方式。假设您按照 these docs 安装 BOSH-Lite,您可以从以下位置更新 create-env 命令:
bosh create-env ~/workspace/bosh-deployment/bosh.yml \
--state ./state.json \
-o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
-o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
-o ~/workspace/bosh-deployment/bosh-lite.yml \
-o ~/workspace/bosh-deployment/bosh-lite-runc.yml \
-o ~/workspace/bosh-deployment/uaa.yml \
-o ~/workspace/bosh-deployment/credhub.yml \
-o ~/workspace/bosh-deployment/jumpbox-user.yml \
--vars-store ./creds.yml \
-v director_name=bosh-lite \
-v internal_ip=192.168.50.6 \
-v internal_gw=192.168.50.1 \
-v internal_cidr=192.168.50.0/24 \
-v outbound_network_name=NatNetwork
到这里:
bosh create-env ~/workspace/bosh-deployment/bosh.yml \
--state ./state.json \
-o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
-o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
-o ~/workspace/bosh-deployment/bosh-lite.yml \
-o ~/workspace/bosh-deployment/bosh-lite-runc.yml \
-o ~/workspace/bosh-deployment/uaa.yml \
-o ~/workspace/bosh-deployment/credhub.yml \
-o ~/workspace/bosh-deployment/jumpbox-user.yml \
-o ~/workspace/bosh-deployment/openstack/trusted-certs.yml \
--vars-store ./creds.yml \
-v director_name=bosh-lite \
-v internal_ip=192.168.50.6 \
-v internal_gw=192.168.50.1 \
-v internal_cidr=192.168.50.0/24 \
-v outbound_network_name=NatNetwork \
--var-file=openstack_ca_cert=</PATH/TO/YOUR/CERT>
这增加了两行:
-o ~/workspace/bosh-deployment/openstack/trusted-certs.yml
--var-file=openstack_ca_cert=</PATH/TO/YOUR/CERT>
尽管上面写着openstack,但这些文件并没有任何特定于 OpenStack 的内容。第一行(带有-o)修改了 BOSH 的基本清单以包含一个用于设置 director.trusted_certs 属性的部分,但实际上并未设置该值,它将其参数化为一个名为 openstack_ca_cert 的变量,第二行(with --var-file) 实际上使用给定文件中的内容设置值。
运行该命令后,它将更新 BOSH-Lite,但不会更新 BOSH 部署的内容,例如CF。您需要重新运行 CF 的部署命令,以确保它获取那些受信任的证书。
【讨论】: