各位好
最近申請了一組ssl,內有私秘金鑰(.key)、公開金鑰(.cer)、中繼憑證(.crt)、根憑證(.crt),要將伺服器由原先的http變成https可用,但使用了網路上提供的方式還是無法順利使用,所以想來詢問有人遇過同樣的情況嗎~?
ssl檔案放置位置
C:\SSL資料夾
已經參考的網站資訊
1.中華電信-https://publicca.hinet.net/SSL_download.htm 的Apache SSL憑證請求檔製作與憑證安裝手冊。
2.蓋亞資訊-https://www.gaia.net/tc/news_detail/2/125/apache-ssl 的
下述是測試時目前遇到的情況
1.參考上述兩個網站資訊變更了C:\AppServ\Apache24\conf\extra\httpd-ssl.conf內設定新的項目
SSLCertificateFile "C:\SSL\公開金鑰.cer"
SSLCertificateKeyFile "C:\SSL\私秘金鑰.key"
SSLCertificateChainFile "C:\SSL\中繼+根憑證組合.crt"(根據中華電信Apache ssl手冊14~24頁)
重啟伺服器後還是抓不到上述的內容(因為網址旁的憑證內容還是apache原本的示範資料,所以還是會顯示不安全)
2.後來查到一個放憑證的資料夾"C:\AppServ\Apache24\conf\ssl\server.crt"
將裡面舊的server.crt(裡面是apache原本的示範資料),用申請到的公開金鑰替換掉(.cer改為.crt後替換)
重啟伺服器後網址左側成功變成建立安全憑證,但連線後出現Not found because of proxy error: Error: unable to verify the first certificate(由於代理錯誤而未找到:錯誤:無法驗證第一個證書)
目前猜想可能的問題
1.是否httpd-ssl.conf內容的路徑沒有順利連接上
2.直接修改server.crt的方式,是否可能有部分沒有正常設定到其他金鑰或憑證導致無法驗證證書。
對於ssl設定上還很陌生不知道是否漏了哪些細節 謝謝各位!~
先確認是否有設定 SSLEngine on
再來確認說是否有開啟 http-vhost.conf 這個設定,如果有這邊的設定會大於其他的conf
我會把憑證從cer轉換成crt格式
另外 SSLCertificateChainFile 這個參數要看你的apache版本,以我來說基本上都會把CA憑證的內容放進公開憑證的後面
您好 謝謝您的回應!~
1.目前確認的情況是
SSLEngine on 有放在下方三列之前,在去掉# 應該是有設定開啟!
SSLCertificateFile "C:\SSL\公開金鑰.cer"
SSLCertificateKeyFile "C:\SSL\私秘金鑰.key"
SSLCertificateChainFile "C:\SSL\中繼+根憑證組合.crt"
2.請教一下http-vhost.conf部分要如何確認是否有開啟呢? 是需要看這份文件內的哪行能夠進行相關的確認嗎~?
3.憑證從cer轉換成crt格式,這部分是指第一個公開金鑰的部分也轉成crt格式來使用嗎~?
4.對的,我的版本裡面原本是沒有這行SSLCertificateChainFile,是我參考GPT的說明後來添加的內容。 我是使用appserv8.6.0版,他的apache版本是2.4.25版本
有可能版本太舊無法支援的情況嗎~?
httpd.conf 中有一行 Include conf/extra/httpd-vhosts.conf 看你有沒有註解
有看到你是透過改檔案類型,但實際cer要轉換成crt 要透過openssl指令,例如 openssl x509 -in {server}.cer -inform DER -out {server}.crt
SSLCertificateChainFile是2.4.8以前的參數,如果你目前是2.4.25 可以考慮拿掉這個參數,並將SSLCertificateFile設為利用第三點轉換的憑證檔,且在其檔案內容後面加上CA憑證的內容,但記得中間要有一行區隔。如
公開憑證資訊
CA憑證資訊
但主要你需要配合 apache error_log來判斷是否有錯誤資訊,看你描述os應該是windows,其中事件檢視器中的應用程式也可能會記錄apache的啟動錯誤
謝謝您的詳細指導!
我晚點試試看這個方法修改後能不能動作!