生成自签名证书后,Apache无法启动

时间:2016-03-24 01:17:03

标签: windows ssl xampp

Apache没有开始,错误......

1:08:52 a.m.  [Apache]  Error: Apache shutdown unexpectedly.
1:08:52 a.m.  [Apache]  This may be due to a blocked port, missing dependencies, 
1:08:52 a.m.  [Apache]  improper privileges, a crash, or a shutdown by another method.
1:08:52 a.m.  [Apache]  Press the Logs button to view error logs and check
1:08:52 a.m.  [Apache]  the Windows Event Viewer for more clues
1:08:52 a.m.  [Apache]  If you need more help, copy and post this
1:08:52 a.m.  [Apache]  entire log window on the forums

Apache在我之前正在使用these instructions生成自签名证书。我还使用端口443重定向更新了虚拟主机文件。

Apache日志并没有告诉我任何有用的信息,因为在尝试启动Apache时没有生成错误。我已经检查了netstat,443上没有任何内容。

编辑:我通过评论

重新启动了服务器
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

因此,我的SSL配置中的某些内容使其无法启动。据我所知,我已在SSL配置中正确设置了证书和密钥文件。

编辑2:正在运行httpd -t我收到错误SSLCertificateFile: file 'C:/my/xampp/location/apache/conf/ssl.crt/server.crt' does not exist or is empty

果然我创建的crt文件是空的!关键文件不是。我会尝试重新创建它。

编辑3:好的我重新创建了.crt和密钥文件,它们都有内容。 conf语法通过,但Apache不会启动。我现在可以看到错误:Certificate and private key www.example.com:443:0 from /conf/ssl.crt/server.crt and /conf/ssl.key/server.key do not match AH00016: Configuration Failed

在设置证书时,是否必须使用通用名称,与服务器名称完全匹配?即如果虚拟主机中的服务器名称是www.example.com:443,是否必须将该端口包含在完全限定的域URL公用名中?

编辑4:看到我的配置好像现在我尝试了different tutorial并且证书似乎没问题,但我收到错误described hereopenssl x509 -in my.crt -text表示证书末尾的奇数块。我无法理解新生成的证书是如何被破坏的。我错过了什么吗?

背景是我尝试设置Let's Encrypt为我的Win XAMPP服务器生成便携式SSL证书时出错(我在Ubuntu机器上这样做,因为它更容易使用客户端)。但我得到了#34; Correct zName not found for TLS SNI challenge“。其中一个建议是首先签署自签名证书。这促使我尝试了上述内容。

1 个答案:

答案 0 :(得分:1)

愚蠢的错误。我在与crt文件相同的目录中有密钥文件

在默认配置中,我没有意识到每个文件都有自己的目录

config conf / ssl.crt /中的dir看起来很像conf / ssl.key /

将密钥放在自己的目录中(删除已经存在的密钥后)修复它。

奇怪的是,我看过的教程中的文件位于同一个目录中。只要你正确地链接它们,我认为这不重要。