<-
Apache HTTP 服务器 2.4 > Apache模块mod_session_crypto

Apache模块mod_session_crypto

描述:会话加密支持
状态:实验性
模块标识符:session_crypto_module
源文件:mod_session_crypto.c
兼容性:在Apache 2.3及更高版本中可用

摘要

警告

会话模块使用HTTP cookie,因此可能成为跨站点脚本攻击的受害者,或向客户端公开潜在的私人信息。在服务器上启用会话功能之前,请确保已考虑到相关风险。

该子模块mod_session提供对用户会话加密的支持,然后再将其写入本地数据库或通过HTTP cookie写入远程浏览器。

这可以帮助为用户会话提供隐私,在这些用户会话中,应使会话的内容对用户保持私密,或者需要针对跨站点脚本攻击的影响进行保护。

有关会话界面的更多详细信息,请参阅该mod_session模块的文档。

支持Apache!

主题

指令

错误修正清单

也可以看看

最佳

基本用法

要创建一个简单的加密会话并将其存储在名为session的cookie中 ,请按以下方式配置会话:

基于浏览器的加密会话

Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret

该会话将使用给定的密钥进行加密。通过确保每个服务器上使用相同的加密密钥,可以将不同的服务器配置为共享会话。

如果更改了加密密钥,则会话将自动失效。

有关如何使用会话存储用户名和密码详细信息的文档,请参阅mod_auth_form模块。

最佳

SessionCryptoCipher 指令

描述:用于加密会话的加密密码
句法:SessionCryptoCipher name
默认:SessionCryptoCipher aes256
内容:服务器配置,虚拟主机,目录,.htaccess
状态:实验性
模块:mod_session_crypto
兼容性:在Apache 2.3.0和更高版本中可用

SessionCryptoCipher指令允许在加密期间使用密码。如果未指定,则密码默认为 aes256

可能的值取决于使用的加密驱动程序,并且可能是以下之一:

最佳

SessionCryptoDriver 指令

描述:用于加密会话的加密驱动程序
句法:SessionCryptoDriver name [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_nssmod_ldap。如果发现已经配置,则会记录一条警告,并且现有配置将生效。为避免此警告,请按以下方式使用noinit参数。

NSS与证书数据库

SessionCryptoDriver nss noinit

为避免混淆,请确保所有需要NSS的模块都配置有相同的参数。

OpenSSL的加密驱动程序支持的可选参数指定引擎以用于加密。

具有引擎支持的OpenSSL

SessionCryptoDriver openssl engine=name
最佳

SessionCryptoPassphrase 指令

描述:用于加密会话的密钥
句法:SessionCryptoPassphrase secret [ secret ... ]
默认: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"
最佳

SessionCryptoPassphraseFile 指令

描述:包含用于加密会话的密钥的文件
句法:SessionCryptoPassphraseFile filename
默认:none
内容:服务器配置,虚拟主机,目录
状态:实验性
模块:mod_session_crypto
兼容性:在Apache 2.3.0和更高版本中可用

SessionCryptoPassphraseFile指令指定包含密钥用于加密或解密所述会话的配置文件的名称,指定每行一个。在服务器启动时会读取该文件,并且必须正常重启才能使httpd接收对密钥的更改。

SessionCryptoPassphrase伪指令不同,密钥不会在httpd配置中公开,并且可以通过适当地保护文件来隐藏。

可以指定多个按键以支持按键旋转。列出的第一个密钥将用于加密,而列出的所有密钥都将尝试解密。要在一段时间内跨多个服务器轮换密钥,请在列表末尾添加一个新密钥,并在完全部署到所有服务器后,从列表开头删除第一个密钥。

可用语言: zh  |  fr 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。