Apache:强制对互联网访问者进行客户端证书认证,无需对本地主机进行认证

Apache:强制对互联网访问者进行客户端证书认证,无需对本地主机进行认证

我如何让 Apache 强制对来自互联网的访客进行客户端证书身份验证,但不需要对本地主机进行身份验证?

两者都应该使用 https,并读取相同的目录,最好在相同的端口上。

我有一个可以运行的客户端证书配置设置,现在我需要添加无身份验证的本地主机访问。

有没有人有好的 httpd.conf 模板?我尝试使用http://www.modssl.org/docs/2.8/ssl_howto.html#ToC10但我无法让它工作(并且该示例也不完全是我所需要的。)

答案1

ssl 的配置与检查哪些主机可以访问目录完全分开。

要要求除本地主机之外的任何人进行身份验证,您可以使用满足参数并执行以下操作:

Allow from localhost 127.0.0.1
Require valid-user
Satisfy Any

上面的意思是,用户必须经过身份验证或来自本地主机才能访问服务器。

官方 apache 文档中也有一个使用 Satisfy Any 的不错示例。它解释了在 apache 配置中允许此类操作的位置。 http://httpd.apache.org/docs/2.0/mod/core.html#satisfy

根据评论更新: 为什么不简单地配置两个虚拟主机?一个带有 catch all (*:443) 的主机用于执行客户端证书身份验证,另一个主机 (127.0.0.1:443) 仅监听执行常规 SSL 的本地主机?您可以将两个虚拟服务器的文档根目录设置为相同的目录。

相关内容