1. 程式人生 > >windows下為apache配置https

windows下為apache配置https

前面為 tomcat 配置好了證書,接下來就是為 apache 配置證書。

這裡先宣告幾點,第一,很多教程都是先配置 apache 再來生成證書,其實不用,證書用前面生成好的就可以,只要在 apache 中新增幾行程式碼就行了。第二,證書有很多不同的表現形式,在 windows 下看字尾就可以了,甚至很多都是可以替換使用的,具體的關於證書後綴的內容可以看這篇文章:證書後綴

接下來就來配置 apache,首先配置 httpd.conf(怎麼開啟 httpd.conf),在裡面將兩個註釋去掉,就是去掉前面的 #

#LoadModule ssl_module modules/mod_ssl.so


#Include conf/extra/httpd-mpm.conf  


之後就是重頭戲了,就是為 apache 設定證書路徑,用前面生成的證書就可以了,如果你是別的形式,可以參考上面的證書後綴,只要是證書就可以了,字尾沒關係的。接下來就是修改 httpd-ssl.conf 。

新增的內容如下:

SSLCertificateFile "C:/CA/openssl-1.0.2h/server3/server-cert.pem"      //伺服器自簽名證書
SSLCertificateKeyFile "C:/CA/openssl-1.0.2h/server3/server-key.pem"    //伺服器私鑰檔案
SSLCACertificateFile "C:/CA/openssl-1.0.2h/ca/ca-cert.pem"<span style="white-space:pre">	</span>       //ca中心自簽名檔案


如果你是跟著我搭建的話,那麼這些檔案字尾是沒問題的,但是如果你的字尾是別的,例如不是 pem,而是 crt 等,那也沒問題,重點在於你生成的這個檔案是證書請求,伺服器能接受的 p12 形式還是自簽名證書,上面的 server-cert.crt 跟 server-cert.pem 是一樣的。還有這個預設埠一般是 443。

還有一點,自建 ca 開啟 https 之後,你就不能從網上直接引用 css 以及 js,jQuery 的資源,伺服器會提醒你引用“未經過驗證的資源指令碼”。所以你引用的資源都要載入到本地才行。舉個例子:


如果強制載入就會出現警告字樣:


但是以 http 方式載入頁面就不會問題:


所以只能將資源下載到本地,我使用的是 thinkphp 3.2.3,所以將這些資源放在 Public 目錄下: