尝试使用 SSL 的 Apache 2,我在 .CRT 上收到“无效命令‘-----BEGIN’

尝试使用 SSL 的 Apache 2,我在 .CRT 上收到“无效命令‘-----BEGIN’

我完成了这个教程http://www.vanemery.com/Linux/Apache/apache-SSL.html在 Apache2 上设置 SSL。但是当我尝试启动服务器时,出现此错误:

/etc/apache2/conf.d/ssl.crt/foo-server.crt 第 1 行语法错误:无效命令“-----BEGIN”,可能是拼写错误或由服务器配置中未包含的模块定义

我的 Apache 设置中似乎缺少什么?我该如何检查?

非常感谢您的帮助!

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

以下是我的 vhost 文件:

<IfModule mod_ssl.c>

  <VirtualHost *:443>
    ServerName  foo.ca
    ServerAlias www.foo.ca

    RailsEnv development

    DocumentRoot /home/dan/rails/foo/public

    SSLEngine On
    SSLCipherSuite HIGH:MEDIUM
    SSLProtocol all -SSLv2
    SSLCertificateFile /etc/apache2/conf.d/ssl.crt/foo-server.crt
    SSLCertificateKeyFile /etc/apache2/conf.d/ssl.key/foo-server.key
    SSLCertificateChainFile /etc/apache2/conf.d/ssl.crt/foo-ca.crt
    SSLCertificateFile /etc/apache2/conf.d/ssl.crt/foo-ca.crt

    <Directory "/home/dan/rails/foo/public">
      Order allow,deny
      Allow from all
    </Directory>

  </VirtualHost>

</IfModule>

答案1

检查您的包含指令。看来 httpd 正试图将您的证书文件当作配置文件来运行。因此,证书文件开头的“---begin RSA key”被当作(无效)命令来处理。在您的主 httpd.conf 文件中,我敢打赌您的包含内容是这样的:Include conf.d/ssl.crt/*但它应该更像这样:Include conf.d/ssl.crt/*.conf或者Include conf.d/*.conf

Include 用于提取其他 httpd 模块的所有附加配置文件。其中一个是 ssl.conf。但是,您不希望将这些键视为配置文件,否则您将收到所看到的错误。

相关内容