前提,我使用的是wamp集成环境
一、首先要确保开启了openssl扩展,并确保openssl可用
1)可用phpinfo查看,看openssl是否开启,如果未开启,打开php.ini,将extension=php_openssl.dll前的;去掉。去掉后重启wamp。
2)运行Apache\bin\openssl.exe,如果出现以下提示,说明你电脑上的apache\bin文件夹下的ssleay32.dll及libeay32.dll版本过低,可以去以下地址下载,下载成功后替换apache\bin文件夹中的这两个文件,并把这两个文件复制一份到c:/window/system32文件夹下
http://download.csdn.net/detail/xjymcc/9736091
二、配置apache以支持SSL:
1)打开apache的配置文件conf/httpd.conf,将下面这两行前面的#去掉
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
2)注意修改httpd-ssl.conf 文件里的两个字段:(将该文件中,所有用到的apache路径改成正确的路径)
SSLCertificateFile "C:/Apache2.2/conf/server.crt"
SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"
三、为网站服务器生成证书及私钥文件
1. 生成服务器的私钥
进入命令行:
D:\local\apache2\bin\openssl genrsa -out server.key 1024
|
在当前目录下生成了一个server.key生成签署申请
2. 生成签署申请
D:\local\apache2\bin>openssl req -new –out server.csr -key server.key -config ..\conf\openssl.cnf
|
此时生成签署文件server.csr。需要输入一些信息,注意Common Name为服务器域名,如果在本机,为本机IP。
三:通过CA为网站服务器签署证书
1.生成CA私钥
D:\local\apache2\bin\openssl genrsa -out ca.key 1024
|
多出ca.key文件
2.利用CA的私钥产生CA的自签署证书
D:\local\apache2\bin\openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
|
此时需要输入一些信息,注意Common Name为服务器域名,如果在本机,为本机IP。
3.CA为网站服务器签署证书
D:\local\apache2\bin\openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
|
但此时会报错,于是在当前目录创建demoCA,里面创建以下文件,index.txt, serial内容为01,其他为空,以及文件夹newcerts.再执行一遍,即可生成server.crt文件
步骤四:将 server.crt,server.key复制到apache的conf文件夹下,重启apache
步骤五:配置apache端口访问
1.httpd-vhosts.conf中增加项目配置
2.修改https-ssl.conf中端口号,因为默认是443端口,但基本上我们电脑的443端口已经被别的服务占用了,所以要改成其它端口
把<VirtualHost _default_:443>改成<VirtualHost _default_:8443>
把listen 443改成 listen 8443
配置好后,重启apache,在浏览器中输入https://192.168.1.202:8443,访问成功