如何解决 SSLProtocol 语法错误

如何解决 SSLProtocol 语法错误

我正在尝试安装 SSL 证书。

当我重新启动 Apache 时出现此错误:

SSLProtocol:非法协议“\xe2\x80\x93SSLv2”

这是我的配置文件指令:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias *.example.com
    DocumentRoot /home/abc/public_html/
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /etc/ssl/mycert_example_com_cert.cer
    SSLCertificateKeyFile /etc/ssl/mycert.key
    SSLCACertificateFile /etc/ssl/mycert_example_com_interm.cer
    ErrorLog logs/sites_error_log
    CustomLog logs/sites_access_log common
</VirtualHost>

修正:

我使用@MichaelHampton 的连字符捕获解决了该错误。

现在,当我重新启动 apache 时,http 服务守护进程不会启动apachectl restartapachectl stopapache start

因此我逐步执行指令,逐一注释和取消注释,并且在我取消注释时SSLEngine onhttp 不会重新启动。

所以我想知道...这是 conf 文件中的第二个容器。第一个容器也有一个SSLEngine on指令。我需要在每个容器中重复该指令吗?

答案1

您的配置行不包含预期的连字符 ( -)。而是包含一个短划线 ( )。它看起来很相似,但它是一个完全不同的字符。

事实上,看起来它们都是破折号。

如果您从将连字符更改为破折号的网站进行复制和粘贴,则可能会发生这种情况。

为了解决这个问题,请将两个短划线都替换为连字符。

答案2

确保 mod_ssl 正在加载。您应该能够通过检查错误日志来判断(在 ubuntu 上,该日志位于 /var/log/apache2 中)。

相关内容