【问题标题】:SSLRequire file expressionSSLRequire 文件表达式
【发布时间】:2017-11-30 22:02:07
【问题描述】:

我在 Apache 2.4 中遇到 SSLRequire 文件表达式的问题,因为它似乎无法找到或无法访问相关文件。

以下是代码摘录:

<Location />    
                SSLOptions +StrictRequire
                SSLRequireSSL
                SSLRequire (%{SSL_CLIENT_CERT} eq file("<full_path_to_PEM_file>"))
</Location>

当我尝试访问该站点时,我在日志中收到此错误:

[Tue Jun 27 13:20:02.358478 2017] [ssl:error] [pid 18661:tid 47040594310912] [client 82.69.3.205:58275] Evaluation of expression from 20-mod_ssl.conf:240 failed: Cannot open file <full_path_to_PEM_file>, referer: https://example.com/

权限正确,文件肯定存在,所以这里不知道还能做什么。

PEM 文件是一个有效的公共证书,在开始和结束处都有“BEGIN CERTIFICATE”和“END CERTIFICATE”行...

有什么想法吗?

【问题讨论】:

    标签: apache mod-ssl


    【解决方案1】:

    您的虚拟主机应如下所示:

    <VirtualHost *:443>
        ServerAdmin webmaster@example.com
        DocumentRoot /var/www/html/example
    
        ServerName example.com
    
        SSLEngine on
    
        SSLCertificateFile /etc/ssl/CA/example_com.crt
        SSLCertificateKeyFile /etc/ssl/CA/example.key
    
        # https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1203&nav=0,96,1,95
        SSLCertificateChainFile /etc/ssl/CA/chain_example_with_Positive.pem
    
        SSLHonorCipherOrder On
        SSLProtocol -all +TLSv1 +SSLv3
        SSLCipherSuite RC4-SHA:HIGH:!MD5:!aNULL:!EDH:!ADH
        SSLInsecureRenegotiation off
    
        <Directory /example/>
                Options Indexes SymLinksIfOwnerMatch
                AllowOverride All
                Require all granted
        </Directory>
        <Directory /var/www/html/example/>
                Options Indexes SymLinksIfOwnerMatch
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown    
    </VirtualHost>
    

    【讨论】:

    • 谢谢,但这不是我要问的。根据您的回答,我已经安装了公钥和私钥 - 这不是问题。我正在尝试为客户端添加额外的身份验证层,以便在他们可以连接之前提供他们的证书。这是通过 SSLRequire 选项加上 SSLOptions +StrictRequire 来完成的。我的问题是关于文件表达式,它似乎不适用于 SSLRequire...
    • 好的...您是否注意到错误为 Cannot open file &lt;full_path_to_PEM_file&gt; ?这意味着根本没有名为 Cannot open file &lt;full_path_to_PEM_file&gt; 的文件
    • 是的,就像我在原帖中所说的那样......“权限正确,文件肯定存在”
    • 先生...如果您想为您的特定问题提供解决方案,您不需要提供确切的输出...不要显示密码...但其余的...
    • 但同样,输出在原始问题中 - 没有其他可显示的......
    猜你喜欢
    • 2010-10-27
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2014-01-17
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多