AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1095421
Accepted
Jeff
Jeff
Asked: 2022-03-06 08:02:21 +0800 CST2022-03-06 08:02:21 +0800 CST 2022-03-06 08:02:21 +0800 CST

是否可以从 HTTP_HOST (或类似的东西)为 SSLCertificateFile 生成一个变量?

  • 772

通常在我的虚拟主机块中,我会这样做:

Define SITE example.com

SSLCertificateFile /path/to/${SITE}.crt
SSLCertificateKeyFile /path/to/${SITE}.key

我想知道是否可以在 Apache 中创建一个与我的文件名相对应的变量example.com.crtand example.com.key?

我认为不是,但值得要求整合我的虚拟主机块。

apache-2.4
  • 2 2 个回答
  • 58 Views

2 个回答

  • Voted
  1. Best Answer
    Sunry
    2022-09-01T22:52:03+08:002022-09-01T22:52:03+08:00

    对于 Apache,您可以使用mod_macro

    首先为重复配置定义一个VHost Macro:

     <Macro VHost $host $port $dir>
      Listen $port
      <VirtualHost *:$port>
    
        ServerName $host
        DocumentRoot $dir
    
        <Directory $dir>
          # do something here...
        </Directory>
    
        # limit access to intranet subdir.
        <Directory $dir/intranet>
          order deny,allow
          deny from all
          allow from 10.0.0.0/8
        </Directory>
      </VirtualHost>
    </Macro>
    

    然后,您可以使用具有不同参数的 VHost。

    Use VHost www.apache.org 80 /projects/apache/web
    Use VHost www.perl.com 8080 /projects/perl/web
    Use VHost www.ensmp.fr 1234 /projects/mines/web
    

    我有 50 个基于同一个 wordpress 代码目录的域(如 a.com、b.com、c.com、d.com 等)。转换为 https 时,每个域都有自己的证书和私钥文件。我不想复制 & 粘贴 & 更改 VirtualHost 块代码 50 次。

    通过 mod_macro 我不需要做 50 次 VirtualHost 块。我是这样做的,这使它更容易。下面的宏包括将 www 重定向到非 www 域名:

    <Macro VHost $domain>
    <VirtualHost *:443>
        ServerName www.$domain
        Redirect permanent / https://$domain/
    
        Include /path/to/apache-common-ssl.conf
    
        SSLCertificateFile /etc/pki/tls/certs/$domain.cer
        SSLCertificateKeyFile /etc/pki/tls/private/$domain.key
        SSLCertificateChainFile /etc/pki/tls/certs/$domain-fullchain.cer
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName $domain
        DocumentRoot /home/wordpress
        <Directory /home/wordpress>
            # Stuff about the directory ...
        </Directory>
    
        Include /path/to/apache-common-ssl.conf
    
        SSLCertificateFile /etc/pki/tls/certs/$domain.cer
        SSLCertificateKeyFile /etc/pki/tls/private/$domain.key
        SSLCertificateChainFile /etc/pki/tls/certs/$domain-fullchain.cer
    </VirtualHost>
    </Macro>
    
    Use VHost a.com
    Use VHost b.com
    Use VHost c.com
    ......
    
    • 3
  2. Lacek
    2022-03-06T08:43:07+08:002022-03-06T08:43:07+08:00

    Apache 希望在启动时读取证书,因此您将无法在运行时定义它们(即在握手期间)。

    • 1

相关问题

  • %{REQUEST_FILENAME}.ext 是什么意思?为什么额外的 .ext 结尾?

  • 为什么我的 Apache 能够提供 200 个包含斜杠的 .php 文件?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve