
내 Apache httpd 서버에서 클라이언트가 필요로 하는 클라이언트 인증서가 여러 개 있습니다(다음 지침을 사용하여 만들었습니다).http://www.garex.net/apache/). 클라이언트 인증서만 사용자 이름/비밀번호 조합과 일치하도록 인증하고 허용하는 인증을 갖고 싶습니다.
user1
예를 들어 CN 및 user2
.htpasswd 파일이 포함된 두 개의 클라이언트 인증서가 있는 경우
user1:passwordA
user2:passwordB
나는 다음과 같은 것을 원한다
SSLUserName %{SSL_CLIENT_S_DN_CN}
AuthName "Please enter your username and password"
AuthType Basic
AuthUserFile /path/.htpasswd
require valid-user
그러나 이렇게 하면 500 오류가 발생합니다. 어떡해?
답변1
오류 500은 잘못된 SSLUserName
구문으로 인해 발생합니다. 다음을 제외하고 작성해야 합니다 %{...}
.
SSLUserName SSL_CLIENT_S_DN_CN
그러나 실제로 기본 인증 및 인증서 이름이 일치하도록 요구하려면 제거하고 SSLUserName
( mod_ssl
터치되지 않도록 REMOTE_USER
) 다음을 사용해야 합니다.
SSLRequire %{SSL_CLIENT_S_DN_CN} eq %{REMOTE_USER}
구성 파일에서 직접(가 아닌 .htaccess
) 사용할 때 더 잘 작동할 수 있는 또 다른 옵션은 다음과 같습니다.
RewriteEngine on
RewriteCond %{SSL:SSL_CLIENT_S_DN_CN} !=%{LA-U:REMOTE_USER}
RewriteRule ^ - [F]