cm0*_*007 4 ssl authentication ssl-certificate apache-2.2
我有几个客户端证书,我的 Apache httpd 服务器要求客户端拥有这些证书(使用http://www.garex.net/apache/ 上的说明制作)。我想要一个身份验证,它也进行身份验证并只允许客户端证书匹配用户名/密码组合。
举例来说,如果我有CN两个客户证书user1和user2和htpasswd文件
user1:passwordA
user2:passwordB
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西
SSLUserName %{SSL_CLIENT_S_DN_CN}
AuthName "Please enter your username and password"
AuthType Basic
AuthUserFile /path/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud)
但是,尝试这样做会导致 500 个错误。我能做什么?
错误 500 是由于错误的SSLUserName语法 - 它应该不写%{...}:
SSLUserName SSL_CLIENT_S_DN_CN
Run Code Online (Sandbox Code Playgroud)
但实际上,如果您想要求基本身份验证和证书名称匹配,您应该删除SSLUserName(这样mod_ssl就不会触及REMOTE_USER)并使用:
SSLRequire %{SSL_CLIENT_S_DN_CN} eq %{REMOTE_USER}
Run Code Online (Sandbox Code Playgroud)
直接在配置文件中使用时可能会更好的另一个选项(不在 中.htaccess):
RewriteEngine on
RewriteCond %{SSL:SSL_CLIENT_S_DN_CN} !=%{LA-U:REMOTE_USER}
RewriteRule ^ - [F]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5144 次 |
| 最近记录: |