客户端认证过程的目的仅仅是为了证明您在SSLCACertificateFile(在conf文件中)中拥有的CA已经为客户端担保了吗?如果CA是众所周知的CA,那么拥有该CA签名的公共证书的任何人都可以作为有效客户端通过?对于整个客户端身份验证这件事有些困惑。
答案 0 :(得分:0)
是,但是:
FakeBasicAuth
案在某些情况下会有所帮助文档中给出的示例:
SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5 \
and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20 ) \
or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
请注意,现在不推荐使用SSLRequire
,而推荐使用Require
,这几乎是它的严格超集。您在https://httpd.apache.org/docs/2.4/expr.html上有关于如何测试的详细信息,https://httpd.apache.org/docs/2.4/mod/mod_ssl.html的开头显示了可以测试的所有可能的“ SSL”变量,例如:
SSL_CLIENT_M_SERIAL string The serial of the client certificate
SSL_CLIENT_S_DN string Subject DN in client's certificate
SSL_CLIENT_S_DN_x509 string Component of client's Subject DN