如何使用别名在 Apache 虚拟主机上配置多个 SSL 证书?

mer*_*lin 5 apache ssl apache2 certificate virtualhost

我有一个网络应用程序,可以使用相同的代码在多个国家/地区的域上运行。Apache 配置了别名。除了配置单独的 SSL 证书这一点之外,这是可行的:

    ServerAlias *.server-at
    ServerAlias *.server-ch
    ServerAlias *.server-es

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/rex.server-de.crt
    SSLCertificateKeyFile /etc/ssl/private/rex.server-de.key
Run Code Online (Sandbox Code Playgroud)

apache2 是否可以在虚拟主机容器内配置多个 SSL 证书?

ped*_*ofb 6

您可以使用虚拟主机轻松配置各个证书,为每个域区分请求ServerName。例如

listen 443

<VirtualHost *:443>
    ServerName rex.server.de:443
    SSLEngine on
    SSLCertificateFile " /etc/ssl/certs/rex.server-de.crt"
    SSLCertificateKeyFile " /etc/ssl/certs/rex.server-de.key"
</VirtualHost>

<VirtualHost *:443>
    ServerName rex.server.at:443
    SSLEngine on
    SSLCertificateFile " /etc/ssl/certs/rex.server-at.crt"
    SSLCertificateKeyFile " /etc/ssl/certs/rex.server-at.key"
</VirtualHost> 
Run Code Online (Sandbox Code Playgroud)

  • 是的,这是可能的。然而,有几个配置选项需要复制。我正在寻找一个更“优雅”的解决方案,我可以添加数十个别名而不是数十个 VH。 (6认同)
  • 对于 OP 来说可能为时已晚,但如果您需要将相同的选项放入多个 VH 中,您可以将它们放入一个包含文件中,并包含来自不同 VH 的相同包含文件。这样,每个 VH 将具有不同的服务器名称和证书,并且只有一个 Include 指令。 (4认同)