请帮我解决无效命令“SSLEnable”错误 – Apache,mod_sslconfiguration问题

我一直在试图学习如何使用mod_ssl在Windows上设置apache 2.0,我确保mod_ssl.so文件在模块目录中,configuration文件包含在conf目录(httpd-ssl.conf)中,通过取消注释mod_ssl.so的LoadModule选项来启用该模块。

我创build了一个自签名证书,并将crt文件和密钥文件都放在conf目录中。

我的sslconfiguration文件中的信息如下所示:

<VirtualHost _default_:443> ServerAdmin [email protected] DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/" ServerName localhost:443 ServerAlias localhost:443 SSLEngine on SSLEnable SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert" SSLCertificate "D:/Dev-Ops/apache/Apache2/conf/server.key" </VirtualHost> 

我相信我可能在这里做错了什么(我是Apache的新手和所有这些东西)。 目前我收到一个错误说:

D:/Dev-Ops/apache/Apache2/conf/httpd-ssl.conf中第8行的语法错误:无效的命令“SSLEnable”,可能是错误拼写或由未包含在服务器configuration中的模块定义的

我的问题是:

  1. 我是否必须在我的计算机上安装OpenSSL(我已经安装了它)才能使mod_ssl正常工作? 如果有,我需要进行configuration以确保它们之间相互通信?

  2. 上面的VirtualHostconfiguration有什么问题? 我能做些什么才能解决问题?

  3. 每个版本的Apache都必须有一个特定版本的mod_ssl吗? 如果是的话,我在哪里可以得到二进制mod_ssl.so文件下载(这是非常忙碌的find这个小文件!或者我看着错误的地方!),如果它必须有一个特定版本的mod_ssl,什么将会是Apache 2.0的最佳版本?

  4. 是什么导致了我上面提到的错误? (我确保我的文件在正确的位置,所有的configuration指令都启用了,等等)。

  5. 请你能build议一个好的地方/书/链接让我开始学习更多关于Apache Web服务器及其在生产环境中的各种应用程序?

请有人能帮助我吗? 所有的帮助将非常感激。

UPDATE

我将虚拟主机剥离到以下位置:

 <VirtualHost _default_:443> DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/" SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert" SSLCACertificatePath "D:/Dev-Ops/apache/Apache2/conf/" </VirtualHost> 

并在浏览器中显示以下错误:

在这里输入图像说明

当我尝试使用下面的configuration指令(使用SSLEngine)

 <VirtualHost _default_:443> DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/" SSLEngine on SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert" SSLCACertificatePath "D:/Dev-Ops/apache/Apache2/conf/" </VirtualHost> 

我在error.log文件中收到以下错误:

 [error] Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file D:/Dev-Ops/apache/Apache2/conf/server.cert) 

我已经做了一些关于删除密码和更新证书的研究,用新生成的密码replace现有密码。 但是,这似乎并没有为我做的诡计! 我开始怀疑是否是我的mod-ssl的版本是这个问题(我怎么能/在哪里可以find它是否与我的apache的版本兼容,如果它不兼容,我可以在哪里获得。所以要把事情搞定!)

请有人可以向我解释这个? 帮我解决这个问题!

我是否必须在我的计算机上安装OpenSSL(我已经安装了它)才能使mod_ssl正常工作? 如果有,我需要进行configuration以确保它们之间相互通信?

取决于你如何安装它。 你应该使用以-win32-x86-openssl结尾的MSI,它应该有你需要的一切。

上面的VirtualHostconfiguration有什么问题? 我能做些什么才能解决问题?

删除SSLEnable ,这不是一个有效的指令。

每个版本的Apache都必须有一个特定版本的mod_ssl吗? 如果是的话,我在哪里可以得到二进制mod_ssl.so文件下载(这是非常忙碌的find这个小文件!或者我看着错误的地方!),如果它必须有一个特定版本的mod_ssl,什么将会是Apache 2.0的最佳版本?

看到你的第一个问题的答案,听起来像你需要从正确的MSI安装; .so文件不包括您需要获得一个可用的SSL设置。

是什么导致了我上面提到的错误? (我确保我的文件在正确的位置,所有的configuration指令都启用了,等等)。

见第二个问题的答案。

请你能build议一个好的地方/书/链接让我开始学习更多关于Apache Web服务器及其在生产环境中的各种应用程序?

文档是一个很好的开始,通过Apache2挖掘这里可以是一个很好的资源,并有大量的互联网howto文件。

你应该阅读mod_ssl文档 。 你会看到那里没有指令SSLEnable