Apache - 客户端证书
Apache - Client Certificates
客户端认证过程的目的是否只是为了证明您在 SSLCACertificateFile(在 conf 文件中)中的 CA 已经为客户端提供了担保?如果 CA 是众所周知的 CA,那么任何拥有由该 CA 签名的 public 证书的人都可以作为有效客户端通过?对整个客户端身份验证有点困惑。
是的,但是:
- 例如,在私人设置中,您也可以使用私人内部 CA,这样您就可以控制谁能获得证书。
- 看看 SSLOptions directive,
FakeBasicAuth
案例在某些情况下可以提供帮助
- 更一般地说,您有 SSLRequire directive,您可以在其中根据所提供证书的任何组成部分(例如其 CN)限制访问。
文档中给出的示例:
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 the details on how you can test, and the beginning of 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
客户端认证过程的目的是否只是为了证明您在 SSLCACertificateFile(在 conf 文件中)中的 CA 已经为客户端提供了担保?如果 CA 是众所周知的 CA,那么任何拥有由该 CA 签名的 public 证书的人都可以作为有效客户端通过?对整个客户端身份验证有点困惑。
是的,但是:
- 例如,在私人设置中,您也可以使用私人内部 CA,这样您就可以控制谁能获得证书。
- 看看 SSLOptions directive,
FakeBasicAuth
案例在某些情况下可以提供帮助 - 更一般地说,您有 SSLRequire directive,您可以在其中根据所提供证书的任何组成部分(例如其 CN)限制访问。
文档中给出的示例:
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 the details on how you can test, and the beginning of 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