我正在使用 Let's Encrypt ( certonly) 为 Apache 服务器上托管的多个网站生成 SSL 证书。这些证书的文件位置在创建之前就已确定,因此我提前将它们的路径写入我的虚拟主机配置中。站点运行后,我将使用certbot获取证书文件,然后重新加载 Apache 配置。
我还有一个使用有效文件定义的全局 SSL 证书,因此每个 SSL 虚拟主机肯定都有一个证书。
我遇到的问题是 Apache 不会在没有所有证书文件的情况下运行,尽管有全局后备。我试图有条件地配置 Let's Encrypt 证书,仅当文件存在时使用IF,但 Apache 说SSLCertificateFile not allowed here.
SSLCertificateFile仅当新证书文件存在时,我如何才能覆盖全局?我正在尝试执行所有这些操作,而无需在生成证书之前和之后修改配置。
这是我尝试过的:
<If "-f '/etc/letsencrypt/live/domain/fullchain.pem'">
SSLCertificateFile /etc/letsencrypt/live/domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain/privkey.pem
</If>
Run Code Online (Sandbox Code Playgroud)
??SSLCertificateFile not allowed here
我使用 docker 命令创建了一个用户定义的网桥:
docker network create --driver bridge mynetwork
Run Code Online (Sandbox Code Playgroud)
此命令导致创建了一个网桥,如下所示netstat -i:
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br-000f1 1500 0 0 0 0 0 0 0 0 BMRU
Run Code Online (Sandbox Code Playgroud)
与我之前信任docker0网桥的方式相同,我需要将此新网桥添加到我的防火墙信任区域:
firewall-cmd --permanent --zone=trusted --add-interface=Docker0
Run Code Online (Sandbox Code Playgroud)
我看不到推断或指定网桥设备名称的方法,因此我不确定如何以自动方式将其添加到我的信任区域。
我将不胜感激任何帮助。