Apache萬網SSl證書安裝不成功的一個注意事項(https安全連接,基於phpstudy)

最近,微信小程序挺火,要作小程序網站域名必需要有ssl證書,造成https://的安全連接,我因而從萬網上下載了一個免費的ssl證書,按照萬網提供的安裝方式怎麼也安裝很差,最後我這個Apache小白費了2天的時間,終於本身搞定了。
ssl證書文件說明:php

1. 證書文件214776495000741.pem,包含兩段內容,請不要刪除任何一段內容。
2. 若是是證書系統建立的CSR,還包含:證書私鑰文件214776495000741.key、證書公鑰文件public.pem、證書鏈文件chain.pem。apache

如下是我本身摸索的證書系統建立的CSR的安裝順序:
( 1 ) 把下載的CSR三個文件放到同一個文件夾內,這裏咱們就命名爲ssl文件夾;而後咱們吧ssl文件夾移動到apache的目錄內,我移動到了:C:\phpStudyB\Apache\conf 這個文件夾內。小程序

( 2 ) 打開 apache 安裝目錄下 conf 目錄中的 httpd.conf 文件,找到代碼: #LoadModule ssl_module modules/mod_ssl.so, 把上面的內容前面的 # 號去掉,開啓ssl模塊,並在下面加入一行,以便載入一個ssl站點配置的文件vhostsssl.conf,總結起來就是:微信小程序

安全

 #LoadModule ssl_module modules/mod_ssl.so 

替換成服務器

LoadModule ssl_module modules/mod_ssl.so
Include conf/vhostsssl.conf

( 3 ) 而後在conf目錄下新建一個文本文件,命名爲vhostsssl.conf,該文件完整路徑爲:C:\phpStudyB\Apache\conf\vhostsssl.conf,並粘貼一下代碼:微信

Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300
#以域名app.sdclo2.com,網站根目錄爲D:\app.sdclo2.com爲例:
<VirtualHost *:443>
DocumentRoot "D:\app.sdclo2.com"
ServerName app.sdclo2.com
SSLEngine on
#加密套件以下(萬網提供)
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!tNULL:!NULL:!FH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 證書公鑰配置
SSLCertificateFile "C:/phpStudyB/Apache/conf/ssl/public.pem"
# 證書私鑰配置
SSLCertificateKeyFile "C:/phpStudyB/Apache/conf/ssl/214776495000741.key"
# 證書鏈配置
SSLCertificateChainFile "C:/phpStudyB/Apache/conf/ssl/chain.pem"
<Directory "d:\app.sdclo2.com"> 
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost> 

( 4 ) 重啓 Apache。app

( 5 )輸入網址:https://app.sdclo2.com/ 測試證書是否正確安裝。ide

==========================================================================================================測試

以上5個步驟在phpstudy中可簡化爲兩步:

一、開啓phpstudy的ssl模塊,在php_openssl前面打√,具體以下:

 

2 點擊「其餘選項菜單「→」「站點域名配置」,在彈出的對話框中補充填寫https站點的配置信息。注意ssl證書的路徑不要搞錯。

Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300
<VirtualHost *:443>
DocumentRoot "D:\app.sdclo2.com"
ServerName app.sdclo2.com
SSLEngine on
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!tNULL:!NULL:!FH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile "C:/phpStudyB/Apache/conf/ssl/public.pem"
SSLCertificateKeyFile "C:/phpStudyB/Apache/conf/ssl/214776495000741.key"
SSLCertificateChainFile "C:/phpStudyB/Apache/conf/ssl/chain.pem"
<Directory "d:\app.sdclo2.com"> 
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost> 

 

注意事項:

若是安全連接出現了服務器錯誤:

 

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.

 

那麼咱們就要查看服務器的錯誤緣由,默認的apache的錯誤日誌文件位於:C:\phpStudyB\Apache\logs\error.log.

我找到的緣由爲:

configuration error: couldn't perform authentication. AuthType not set!: /

這個錯誤緣由在知乎上有解答:(https://www.zhihu.com/question/20240655/answer/62868315

Apache版本若是小於2.4,就去掉Require all granted這行,若是大於2.4,就去掉allow from all這行。個人錯誤是前者。

相關文章
相關標籤/搜索