1. 修改conf/httpd.conf
取消ssl及proxy相关注释
#LoadModule ssl_module modules/mod_ssl.so (去掉前面的#号)
#Include conf/extra/httpd-ssl.conf (去掉前面的#号)
2. 生成证书
cmd进入命令行,进入apache安装目录的bin目录。
2.1 设置OPENSSL_CONFIG配置
执行命令:set OPENSSL_CONF=..\conf\openssl.cnf
2.2 生成服务端的key文件
执行命令:openssl genrsa -out server.key 1024
完成后,会在bin目录下生成server.key文件
2.3 生成签署申请
执行命令:openssl req -new -out server.csr -key server.key
完成后,会在bin目录下生成server.csr文件。其中 Common Name <eg,YOUR name>[] 需要与vhost文件中的ServerName一致,否则apache启动时将会报错。
2.4 生成CA的key文件
执行命令:openssl genrsa -out ca.key 1024
完成后,会在目录bin下生成ca.key文件
2.5 生成CA自签署证书
执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt
完成后,会在目录bin下生成ca.crt文件,此处填写的信息与2.3步中类似。
2.6 生成CA的服务器签署证书
手动创建相关目录:
在bin下新建demoCA文件夹
bin/demoCA
在demoCA下新建index.txt
bin/demoCA/index.txt
在demoCA下新建serial.txt,其内容为01,重命名删除.txt后缀
bin/demoCA/serial
在demoCA下新建newcert文件夹
bin/demoCA/newcerts
完成后,会在bin目录下生成server.crt文件。demoCA目录的最终结构如下:
此处如果没有创建好相关目录和文件,将会报如下错误:
执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
3. 修改conf/extra/httpd-ssl.conf文件
3.1 修改配置,全部配置如下(其他配置我都删了,就保留了以下内容)
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
SSLSessionCache “shmcb:/xampp/apache/logs/ssl_scache(512000)”
SSLSessionCacheTimeout 300
3.2 修改相关证书路径
在apache安装目录的conf目录下,新建一个key目录,然后建立一个对应域名的目录,然后将bin目录中的相关证书复制到key目录中。key目录最终的文件结构如下:
3. 修改conf/extra/httpd-ssl.conf文件
3.1 修改配置,全部配置如下(其他配置我都删了,就保留了以下内容)
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
SSLSessionCache “shmcb:/xampp/apache/logs/ssl_scache(512000)”
SSLSessionCacheTimeout 300
3.2 修改相关证书路径
在apache安装目录的conf目录下,新建一个key目录,然后建立一个对应域名的目录,然后将bin目录中的相关证书复制到key目录中。key目录最终的文件结构如下:
转载请注明:XAMPP中文组官网 » XAMPP Apache关于https配置问题