一、生成CA的服务器证书
进入命令行apache安装目录的bin文件 cd XXX\Apache\bin (XXX为自己Apache的路径)
a、生成服务端的key文件
执行命令:openssl genrsa -out server.key 1024
在bin目录中生成server.key文件
b、生成签署申请
执行命令:openssl req -new -out server.csr -key server.key
在bin目录中生成server.csr文件,在执行以上命令时会提示输入相关信息,其中 Common Name <eg,YOUR name>[] 需要与配置文件中的 ServerName一致,否则apache启动时将会报错。
![](https://i-blog.csdnimg.cn/blog_migrate/a11ab62d4ad2efa4f9e02554d7946a8d.png)
c、生成CA的key文件
执行命令:openssl genrsa -out ca.key 1024
件在目录bin下生成ca.key文
d、 生成CA自签署证书
执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt
在目录bin下生成ca.crt文件
e、生成CA的服务器签署证书
执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key (这里注意,执行前进行下方操作,不然会报错)
i)在bin目录下新建demoCA文件夹
ii) 在demoCA文件夹下新建index.txt
iii) 在demoCA文件夹下新建serial,内容编辑为: 01 (注意,这个文件去掉扩展名)
iiii) 在demoCA文件夹下新建newcerts文件夹
f、将生成好的证书自己做好保存
二、配置安装SSL证书实现https链接
a、进入php-5.4.45文件夹下打开php.ini开启extension=php_openssl.dll。
![](https://i-blog.csdnimg.cn/blog_migrate/cca0cbb8959ac25b00512a0c92384244.png)
增加一条引用语句 Include conf/vhosts_ssl.conf
b、修改打开httpd.conf配置文件找到#LoadModule ssl_module modules/mod_ssl.so 开启使ssl模块生效。 再增加一条引用语句 Include conf/vhosts_ssl.conf(如图)
![](https://i-blog.csdnimg.cn/blog_migrate/37185735fc54f97c724f1d2db7e4b0a4.png)
c、在conf目录下新建b步骤引用的vhosts_ssl.conf 文件,在文件中配置
SSLStrictSNIVHostCheck off
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLProtocol all -SSLv2 -SSLv3
<VirtualHost *:443>
DocumentRoot "XXX\WWW" (这里是web项目路径)
ServerName localhost (这里名字自己定)
ServerAlias localhost (这里名字自己定)
<Directory "XXX\WWW"> (这里是web项目路径)
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile "XXXXX/ca.crt" (这里是第一步生成证书的位置)
SSLCertificateKeyFile "XXXXX/ca.key" (这里是第一步生成证书的位置)
</VirtualHost>