windows+php+apache本地配置HTTPS

1、搭建PHP+apache環境php

apache:http://www.apachelounge.com/download/
php:http://windows.php.net/download/#php-5.5

版本選擇都下載最新版的64bithtml

apache官網獲取下載地址路徑:git

apache -> htttp server -> download -> windows -> Apache Loungeapache

選擇解壓到C盤根目錄上,如今開始配置,PHP是不用動的,只須要在訪問域名時候Apache去找PHP解析就好了,因此僅僅配置:windows

Apache24\conf\httpd.conf

配置步驟:瀏覽器

1.打開Apache24\conf\httpd.conf
ServerRoot根據本身需求改成apache根目錄。 
DocumentRoot 也能夠根據本身的喜愛修改網站根目錄的地方。別忘了下面的Directory節點裏面的也得改。
2.在一堆LoadModule下面添加
# php7 support
LoadModule php7_module C:/php/php7apache2_4.dll
AddType application/x-httpd-php .php .html .htm
# configure the path to php.ini
PHPIniDir "C:/php"

## 上面這句話的意思是以模塊的方式加載PHP就是將PHP做爲apache的模塊安全

3.爲了讓apache識別index.php
也設爲默認頁把
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
修改成
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
4.管理員權限打開cmd,這句的做用是將apache註冊爲win的服務
C:\Apache24\bin\httpd.exe -k install
5.在htdocs中新建一個index.php文件,而後在瀏覽器中輸入127.0.0.1能夠打開了證實安裝完畢

2、搭建本地HTTPS協議服務器:服務器

 

1.修改兩個配置文件,一個爲conf/httpd.conf,另外一個爲conf/extra/httpd-ssl.confphp7

在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.生成各類證書 app

進入Apache24\bin目錄,在對應文件夾下打開cmd
這裏須要一個openssl的配置文件openssl.cnf,若是他不在 conf文件夾下,能夠去網上下一個,建議把它放到bin目錄下,這樣子敲命令比較方便

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. CSR文件必須有CA的簽名纔可造成證書.可將此文件發送到verisign等地方由它驗證,要交一大筆錢,何不本身作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,打開IE瀏覽器-》工具-》Internet選項-》內容-》證書,按照提示導入,這裏要輸入剛纔生成 .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複製到conf目錄下覆蓋 而後打開httpd-ssl.conf 找到SSLPassPhraseDialog builtin 在前面加上#

重啓apache便可https訪問項目。

備註:

一、cmd命令界面圖示例:

二、剛剛下載的PHP有兩個ini文件,他們的區別是

三、上面有個在IE導入證書的我也不知道是什麼來的,效果圖:

訪問的效果圖:

在上面的F步驟之中可能出現的錯誤是:

解決辦法:進入demoCA,而後打開index.txt.attr,把它修改爲unique_subject = no就能夠了 

摘自:

http://blog.csdn.net/wlmnzf/article/details/50244409
http://blog.csdn.net/wlmnzf/article/details/50229407
http://www.cnblogs.com/GaZeon/p/6214915.html#ys

 如今想知道 httpd.conf 和 \extra\httpd-vhosts.conf  和 \extra\httpd-ssl.conf的關係嗎?就是配置文件啊,兩個個是配置HTTP的,還有一個是配置HTTPS協議的。如今關鍵是HTTPS是什麼東西啊??哭笑哭笑~~~


HTTPS密文傳輸與公鑰私鑰、CA證書之間的關係。

他是如何實現密文傳輸的,如何實現任何人劫持客戶端與服務端的通訊也能保證,客戶端的數據(好比用戶名密碼不被篡改的)。

文章推薦:

數字證書與CA的掃盲介紹:

https://kb.cnblogs.com/page/194742/

也許,這樣理解HTTPS比較容易:

https://kb.cnblogs.com/page/563885/

HTTPS爲何安全 &分析 HTTPS 鏈接創建全過程:

http://wetest.qq.com/lab/view/110.html

數字證書的基礎知識:

http://www.enkichen.com/2016/02/26/digital-certificate-based/
相關文章
相關標籤/搜索