1

我正在尝试通过 VirtualBox bosh-lite VM 在本地部署 CF,但我遇到了公司代理,它在连接到 Internet 之前注入了自签名证书。

我已经 SSH 进入盒子并将 CA 添加到操作系统级别的受信任证书中,但我仍然在链中获得不受信任的证书。

是否可以将企业 CA 放入配置中,以便所有项目都能成功下载/安装?

4

1 回答 1

1

BOSH 通过创建“机器”并安装适当的软件并在这些“机器”中运行它来将 CF、Zookeeper、Kubernetes 等东西部署到“云”。在像 Amazon Web Services 或 VMWare vSphere 这样的“典型”云中,“机器”是典型的虚拟机。

BOSH 还可以将 Docker、Kubernetes 或 Garden 等各种容器运行时视为“云”,在 BOSH-Lite 案例中,它将 Garden 视为云。所以在 BOSH-Lite 案例中,“机器”实际上是在 VirtualBox VM 中运行的 Linux 容器。因此,当您在 VM 的操作系统级别安装证书时,这不适用于在 VM 中作为容器运行的东西。

trusted_certsBOSH 确实有一种本地方式,可以使用该属性将受信任的证书注入到它管理的每台机器中。假设您按照这些文档安装 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 的内容。第一行 (with -o) 修改了 BOSH 的基本清单以包含一个用于设置director.trusted_certs属性但实际上并不设置值的部分,它将其参数化为一个名为 的变量openstack_ca_cert,第二行 (with --var-file) 实际上使用给定文件的内容。

运行该命令后,它将更新 BOSH-Lite,但不会更新 BOSH 部署的内容,例如 CF。您需要重新运行 CF 的部署命令,以确保它获取那些受信任的证书。

于 2019-07-26T19:22:02.033 回答