我一直在嘗試學習如何使用mod_ssl在Windows上使用apache 2.0設定SSL,我確保mod_ssl.so檔案位於模組目錄中,並且設定檔包含在conf目錄中(httpd-ssl.conf),透過取消註解mod_ssl.so的LoadModule 選項來啟用該模組。
我建立了一個自簽名證書,並將 crt 檔案和金鑰檔案都放在 conf 目錄中。
我的 ssl 設定檔上的資訊如下所示:
<VirtualHost _default_:443>
ServerAdmin [email protected]
DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/"
ServerName localhost:443
ServerAlias localhost:443
SSLEngine on
SSLEnable
SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert"
SSLCertificate "D:/Dev-Ops/apache/Apache2/conf/server.key"
</VirtualHost>
我確信我可能在這裡做錯了什麼(我是 Apache 和所有這些事情的新手)。目前我收到一條錯誤訊息:
D:/Dev-Ops/apache/Apache2/conf/httpd-ssl.conf 第 8 行語法錯誤:指令「SSLEnable」無效,可能拼字錯誤或由伺服器設定中未包含的模組定義
我的問題是:
我是否必須在電腦上安裝 OpenSSL(我已經安裝了)才能讓 mod_ssl 正常運作?如果是這樣,我需要配置一些東西來確保它們相互通信嗎?
上面的 VirtualHost 設定有什麼問題?我該怎麼做才能把它做好?
每個版本的 apache 都必須有特定版本的 mod_ssl 嗎?如果是這樣,我可以從哪裡下載二進位 mod_ssl.so 檔案(找到這個小檔案非常忙!或者我看錯了地方!),如果它確實必須有特定版本的 mod_ssl,什麼Apache 2.0 是最好的版本嗎?
是什麼導致了我上面提到的錯誤? (我確保我的文件位於正確的位置,所有配置指令均已啟用,等等)。
請您為我推薦一個好地方/書籍/鏈接,讓我開始更多地了解 apache Web 伺服器及其在生產環境中的各種應用程式?
請有人盡快幫助我嗎?我們將非常感謝您的所有幫助。
更新
我將虛擬主機剝離為以下內容:
<VirtualHost _default_:443>
DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/"
SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert"
SSLCACertificatePath "D:/Dev-Ops/apache/Apache2/conf/"
</VirtualHost>
我在瀏覽器上顯示以下錯誤:
當我嘗試使用以下設定指令進行相同操作時(啟用 SSLEngine)
<VirtualHost _default_:443>
DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/secure/"
SSLEngine on
SSLCertificateFile "D:/Dev-Ops/apache/Apache2/conf/server.cert"
SSLCACertificatePath "D:/Dev-Ops/apache/Apache2/conf/"
</VirtualHost>
我在 error.log 檔案中收到以下錯誤:
[error] Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file D:/Dev-Ops/apache/Apache2/conf/server.cert)
我對刪除密碼短語和重新生成證書進行了相當多的研究,用新生成的證書替換現有的證書;但這似乎對我沒用!我開始懷疑是否是我的 mod-ssl 版本有問題(我如何/在哪裡可以找到它是否與我的 apache 版本兼容!如果不相容,我在哪裡可以獲得 .所以歸檔以確保事情正確!)
請有人跟我解釋一下嗎?並幫我解決這個問題!
答案1
我是否必須在電腦上安裝 OpenSSL(我已經安裝了)才能讓 mod_ssl 正常運作?如果是這樣,我需要配置一些東西來確保它們相互通信嗎?
取決於你如何安裝它。您應該使用以 結尾的 MSI -win32-x86-openssl
,它應該包含您需要的一切。
上面的 VirtualHost 設定有什麼問題?我該怎麼做才能把它做好?
刪除SSLEnable
,它不是有效的指令。
每個版本的 apache 都必須有特定版本的 mod_ssl 嗎?如果是這樣,我可以從哪裡下載二進位 mod_ssl.so 檔案(找到這個小檔案非常忙!或者我看錯了地方!),如果它確實必須有特定版本的 mod_ssl,什麼Apache 2.0 是最好的版本嗎?
查看您第一個問題的答案,聽起來您需要從正確的 MSI 安裝;該.so
文件不包含獲得有效的 SSL 設定所需的全部內容。
是什麼導致了我上面提到的錯誤? (我確保我的文件位於正確的位置,所有配置指令均已啟用,等等)。
請參閱第二個問題的答案。
請您為我推薦一個好地方/書籍/鏈接,讓我開始更多地了解 apache Web 伺服器及其在生產環境中的各種應用程式?
文件是一個很好的起點,可以深入研究阿帕契2這裡可能是一個很好的資源,並且互聯網上有大量的指導文件。
答案2
您應該閱讀mod_ssl 文檔。您會發現那裡沒有指令SSLEnable
。