Docker + SSL + apache2 + x509

Docker + SSL + apache2 + x509

我有一个最大的问题:SSL 我正在尝试在我的系统中安装一个证书,并且我的系统有 3 个使用 vagrant 管理的容器。

数据库(docker) 主系统 (docker) proxy(docker) - 这是代理反向

当我尝试在我的容器代理中安装并在文件夹中安装所有证书时。 我改在

<Virtualhost>

    ## SSL directives
      SSLEngine on
      SSLCertificateFile       "/etc/apache2/ssl/www.mydomain.com.br.crt"
      SSLCertificateKeyFile "/etc/apache2/ssl/mykey.key"
      SSLCACertificateFile  "/etc/apache2ssl/sslroot.crt"
      SSLCertificateChainFile "/etc/apach2/ssl/Intermediate.crt"

</Virtualhost>

显然我的证书在路径文件夹中 /etc/apache2/ssl/

当我尝试重新启动我的 Apache 时,我的容器 "proxy" 不再 运行,它们的状态为已停止。然后我调用 docker 日志代理:

***[error] Init: Unable to read server certificate from file /etc/apache2/ssl/www.patobragado.gedvic.com.br.key
[Thu Aug 06 11:01:02 2015] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Thu Aug 06 11:01:02 2015] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error***

有人知道我该如何解决这个问题吗?

我需要在服务器上安装这个 SSL。

假设您通过将代理容器正确链接到您的网络服务器容器来启动代理容器,例如:

docker run -d --name webserver ...
docker run -d --name proxy --link webserver ...

当您重新启动 webserver 容器时,其内部 Docker IP 地址可能会在重新启动后更改,并且 proxy 容器 gets automatically updated as well 上的 /etc/hosts 文件可能会更改.所以我 猜测 proxy 突然连接到另一个破坏 SSL 的 IP 地址时。

因此您还需要重新启动 proxy(或者如果可能的话,只需在容器中重新加载其配置以重新初始化 SSL 配置)。

我还没有测试过。但是您也可以尝试在 proxy 容器上定义 重启策略 ,例如:

docker run -d --name proxy --link webserver --restart=always ...