Apache本地配置https

环境:

wampserver3.13  apache2.4   php5.6   mysql5.7

1、修改配置文件:conf/httpd.conf和conf/extra/httpd-ssl.conf

在httpd.conf中 

a. 删掉以下语句前的’#’
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-mpm.conf 
#Include conf/extra/httpd-ssl.conf 

b. httpd-ssl.conf中把相应选项改成如下,有’#’的删掉

SSLCertificateFile "c:/Apache24/conf/server.crt"
SSLCertificateKeyFile "c:/Apache24/conf/server.key"
SSLCACertificateFile "c:/Apache24/conf/ca.crt"
SSLVerifyClient require
SSLVerifyDepth  1

2.生成证书

进入Apache24\bin目录,在该文件夹下打开cmd(按住shift键,在此处打开命令窗口)
bin目录需要一个openssl的配置文件openssl.cnf(可直接复制conf文件夹下的)

注意:Common Name建议和httpd.conf中serverName必须一致(下文以www.abc.com为例)

a. 首先要生成服务器端的私钥(key文件):
set OPENSSL_CONF=openssl.cnf
openssl genrsa -des3 -out server.key 1024

b. 生成server.csr ,Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
openssl req -new -key server.key -out server.csr -config openssl.cnf

c. 对客户端也作同样的命令生成key及csr文件
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf

d. 本地配置CA
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

e. 在bin目录下新建一个demoCA文件夹,进入它 
新建newcerts文件夹,不需要进入 
新建index.txt 
新建serial,打开后输入01保存即可

f. 用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

g. 生成一个ca.pfx,打开浏览器-》证书管理-》导入证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码 
openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx.

h.在httpd.conf中找到下面这句话 #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 取消注释(删掉前面的"#")

i.openssl rsa -in server.key -out server.key
把生成的server.key ca.crt server.crt复制到conf目录下 然后打开httpd-ssl.conf 找到SSLPassPhraseDialog builtin 在前面加上#

3、配置httpd-ssl.conf(路径修改为你电脑上实际路径即可)

Listen 443

SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES

SSLHonorCipherOrder on 

SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3

SSLSessionCache         "dbm:F:/wamp64/bin/apache/apache2.4.33/logs/ssl_scache"
SSLSessionCacheTimeout  300


DocumentRoot "F:/www/abc"
ServerName www.abc.com:443
ServerAdmin [email protected]
ErrorLog "F:/wamp64/bin/apache/apache2.4.33/logs/error.log"
TransferLog "F:/wamp64/bin/apache/apache2.4.33/logs/access.log"
    
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    
    
SSLEngine on
SSLCertificateFile "F:/wamp64/bin/apache/apache2.4.33/conf/server.crt"
SSLCertificateKeyFile "F:/wamp64/bin/apache/apache2.4.33/conf/server.key"
SSLCACertificateFile "F:/wamp64/bin/apache/apache2.4.33/conf/ca.crt"

重启apache即可https访问项目。

->证书导入示意:

Apache本地配置https_第1张图片

 

你可能感兴趣的:(PHP)