環境:
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
<VirtualHost _default_:443>
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"
<Directory "F:/www/abc">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
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訪問項目。
->證書導入示意: