尝试使用 SSL 的 Apache 2,我在我的 .CRT 上收到一个“无效命令 '-----BEGIN'”

1 ssl ssl-certificate apache-2.2

我浏览了本教程http://www.vanemery.com/Linux/Apache/apache-SSL.html在 Apache2 上设置我的 SSL。但是当我尝试启动我的服务器时,我收到此错误:

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

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

非常感谢 Aay 的帮助!

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

下面是我的 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>
Run Code Online (Sandbox Code Playgroud)

Chr*_*rel 6

检查您的包含指令。httpd 似乎正在尝试运行您的证书文件,就好像它是一个配置文件一样。因此,证书文件开头的“---begin RSA 密钥”就像一个(无效的)命令一样被处理。在您的主要 httpd.conf 文件中,我敢打赌您的包含内容是这样的:Include conf.d/ssl.crt/*什么时候应该更像这样:Include conf.d/ssl.crt/*.confInclude conf.d/*.conf

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