更新

更新

我一直在嘗試學習如何使用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」無效,可能拼字錯誤或由伺服器設定中未包含的模組定義

我的問題是:

  1. 我是否必須在電腦上安裝 OpenSSL(我已經安裝了)才能讓 mod_ssl 正常運作?如果是這樣,我需要配置一些東西來確保它們相互通信嗎?

  2. 上面的 VirtualHost 設定有什麼問題?我該怎麼做才能把它做好?

  3. 每個版本的 apache 都必須有特定版本的 mod_ssl 嗎?如果是這樣,我可以從哪裡下載二進位 mod_ssl.so 檔案(找到這個小檔案非常忙!或者我看錯了地方!),如果它確實必須有特定版本的 mod_ssl,什麼Apache 2.0 是最好的版本嗎?

  4. 是什麼導致了我上面提到的錯誤? (我確保我的文件位於正確的位置,所有配置指令均已啟用,等等)。

  5. 請您為我推薦一個好地方/書籍/鏈接,讓我開始更多地了解 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

您應該閱讀mod_ssl 文檔。您會發現那裡沒有指令SSLEnable

相關內容