Windows下配置Apache的SSL服务

到Apache的网站上下载包含有SSL服务的安装包。

如果你已经安装过了Apache,在安装含有SSL服务的Apache服务器之前需要卸载已经安装过的。到控制面板里面直接卸载就可以了。注意:Apache在卸载的时候不会删除httpd.conf这个配置文件和htdocs文件夹下面的内容。如果你确实不需要,你需要手工删除。

在Windows的环境下面安装含有SSL的Apache和不含有Apache的方法和过程一致。

这里关键说安装以后的服务配置。
httpd.conf文件,如果需要Apache服务器支持SSL,这里需要载入几个模块。

去掉下面两行之前的#符号
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

LoadModule ssl_module modules/mod_ssl.so的作用是载入SSL模块
[attach]106[/attach]

Include conf/extra/httpd-ssl.conf 的作用是告诉Apache的SSL模块到那里去找配置文件
[attach]107[/attach]

重新启动服务器,测试一下看有没有什么问题。
显然在重新启动服务器的时候报了一个错误,说服务器无法正常启动。这时候我们可以看看日志文件了。
[Fri Aug 15 15:33:08 2008] [notice] Parent: Received restart signal – Restarting the server.
[Fri Aug 15 15:33:08 2008] [notice] Child 740: Exit event signaled. Child process is ending.
Syntax error on line 99 of D:/Dkits/Apache2.2/conf/extra/httpd-ssl.conf:
SSLCertificateFile: file ‘D:/Dkits/Apache2.2/conf/server.crt’ does not exist or is empty
[Fri Aug 15 15:33:08 2008] [warn] (OS 995)The I/O operation has been aborted because of either a thread exit or an application request. : winnt_accept: Asynchronous AcceptEx failed.
[Fri Aug 15 15:33:09 2008] [notice] Child 740: Released the start mutex
[Fri Aug 15 15:33:10 2008] [notice] Child 740: All worker threads have exited.
[Fri Aug 15 15:33:10 2008] [notice] Child 740: Child process is exiting

上面说在D:/Dkits/Apache2.2/conf/server.crt路径下找不到server.crt这个文件。

那么,这个文件在那里呢?
这个文件需要我们用openssl这个程序来生成的。生成这个server.crt文件需要2个文件,一个是openssl.exe 另一个是openssl.cnf。

一般来说openssl.exe 在你Apache的安装路径下的bin文件夹里面,openssl.cnf在Apache安装路径下的conf文件里面。找不到?如果找不到就用windows的查找搜索一下了。这个时候你需要将openssl.exe和openssl.cnf放在同一个文件夹里面。

一般的需要将找到的openssl.cnf文件拷贝到bin文件里面。