<-
Apache > HTTP 伺服器 > 文件 > 2.4版本 > 模組

Apache 模組 mod_session_crypto

支援語言:  英文  |  法文 

說明會話加密支援
狀態實驗
模組識別代號session_crypto_module
原始檔mod_session_crypto.c
相容性適用於 Apache 2.3 及後續版本

摘要

警告

會話模組使用 HTTP cookie,因此可能遭到跨網站指令碼攻擊,或向用戶公開潛在的私人資訊。在你的伺服器上啟用會話功能之前,請確認已考慮相關風險。

mod_session 的此子模組提供在寫入至本機資料庫或透過 HTTP cookie 寫入至遠端瀏覽器之前,對使用者會話進行加密的支援。

對於會話內容應對使用者保密的使用者會話,或需要防範跨網站指令碼攻擊影響者,這可能有助於提供隱私權。

有關會話介面的更多詳細資訊,請參閱 mod_session 模組的說明文件。

Support Apache!

主題

指令

錯誤修正清單

另請參閱

top

基本用法

如要建立一個簡單的加密會話並將其儲存在稱為 session 的 cookie 中,請按下列方式設定會話

基於瀏覽器的加密會話

Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret

會話將使用提供的金鑰進行加密。不同的伺服器可以透過確保在每個伺服器上使用相同的加密金鑰來設定為共用會話。

如果加密金鑰已變更,則會話將自動失效。

有關如何使用會話儲存使用者名稱和密碼詳細資料的文件,請參閱 mod_auth_form 模組。

top

SessionCryptoCipher 指令

說明用於加密會話的加密演算法
語法SessionCryptoCipher 名稱
預設值SessionCryptoCipher aes256
內容伺服器設定、虛擬主機、目錄、.htaccess
狀態實驗
模組mod_session_crypto
相容性在 Apache 2.3.0 和之後版本中提供

在加密過程中使用 SessionCryptoCipher 指令允許使用密碼。如果未指定,密碼預設為 aes256

可能的數值取決於所使用的加密驅動程式,可以為下列其中一個:

top

SessionCryptoDriver 指令

說明用於加密工作階段的加密驅動程式
語法SessionCryptoDriver 名稱 [param[=value]]
預設值none
內容伺服器設定
狀態實驗
模組mod_session_crypto
相容性在 Apache 2.3.0 和之後版本中提供

SessionCryptoDriver 指令指定用於加密的加密驅動程式名稱。如果未指定,驅動程式預設為編譯在 APR-util 中的建議驅動程式。

NSS 加密驅動程式需要一些設定參數,且在驅動程式名稱後面以可選值參數指定。

沒有證書資料庫的 NSS

SessionCryptoDriver nss

具有證書資料庫的 NSS

SessionCryptoDriver nss dir=certs

具有證書資料庫和參數的 NSS

SessionCryptoDriver nss dir=certs key3=key3.db cert7=cert7.db secmod=secmod

路徑中含有空格的 NSS

SessionCryptoDriver nss "dir=My Certs" key3=key3.db cert7=cert7.db secmod=secmod

NSS 加密驅動程式可能已由伺服器其他部分設定,例如 `mod_nss` 或 mod_ldap。如果發現已設定,將會記錄警告,且現有設定將會生效。若要避免此警告,請按照下列範例使用 noinit 參數。

具有證書資料庫的 NSS

SessionCryptoDriver nss noinit

為避免混淆,請確定需要 NSS 的所有模組都使用相同的參數設定。

openssl 加密驅動程式支援一個可選參數,用於指定要使用在加密中的引擎。

支援引擎的 OpenSSL

SessionCryptoDriver openssl engine=name
top

SessionCryptoPassphrase 指令

說明用於加密工作階段的金鑰
語法SessionCryptoPassphrase 機密 [ 機密 ... ]
預設值none
內容伺服器設定、虛擬主機、目錄、.htaccess
狀態實驗
模組mod_session_crypto
相容性在 Apache 2.3.0 和之後版本中提供

SessionCryptoPassphrase 指令指定要使用的金鑰,以在寫入工作階段或在讀取工作階段後解密工作階段內容時啟用內容的對稱式加密。

金鑰長且包含真正隨機字元時安全性較高。變更伺服器上的金鑰會使所有現有工作階段失效。

可以指定多個金鑰以支援金鑰輪替。列出的第一個金鑰將用於加密,而列出的所有金鑰都將嘗試用於解密。要在一段時間內跨多個伺服器輪替金鑰,請在清單結尾新增一個新的機密,且在所有伺服器上完全推行後,從清單開頭移除第一個金鑰。

從版本 2.4.7 起,如果值開頭為 exec:,將執行產生的命令,並使用程式回傳到標準輸出的第一行作為金鑰。

#key used as-is
SessionCryptoPassphrase secret

#Run /path/to/program to get key
SessionCryptoPassphrase exec:/path/to/program

#Run /path/to/otherProgram and provide arguments
SessionCryptoPassphrase "exec:/path/to/otherProgram argument1"
top

SessionCryptoPassphraseFile 指令

說明包含用於加密工作階段的金鑰的文件
語法SessionCryptoPassphraseFile 檔名
預設值none
內容伺服器設定、虛擬主機、目錄
狀態實驗
模組mod_session_crypto
相容性在 Apache 2.3.0 和之後版本中提供

SessionCryptoPassphraseFile 指令指定包含要使用於加密或解密工作階段的金鑰的設定檔名稱,每一行指定一個金鑰。伺服器啟動時會讀取該檔案,且 httpd 要選取金鑰的變更,需要進行優雅的重新啟動。

SessionCryptoPassphrase 指令不同,金鑰不會公開在 httpd 設定中,且可以透過適當地保護檔案來隱藏金鑰。

可以指定多個金鑰以支援金鑰輪替。列出的第一個金鑰將用於加密,而列出的所有金鑰都將嘗試用於解密。要在一段時間內跨多個伺服器輪替金鑰,請在清單結尾新增一個新的機密,且在所有伺服器上完全推行後,從清單開頭移除第一個金鑰。

支援語言:  英文  |  法文 

top

留言

注意
這不是問答區。放於這裡的留言應針對改進文件或伺服器的建議而撰寫,且如果留言已被實作或被認為無效/離題,我們的版主可能會將其移除。關於如何管理 Apache HTTP Server 的問題應導向我們在 Libera.chat 上的 IRC 頻道,#httpd,或寄送至我們的寄件清單