27.9. TLS 클라이언트 인증서 인증 구성
관리자는 클라이언트 인증서 인증을 통해 인증서를 사용하여 인증한 사용자만 웹 서버의 리소스에 액세스할 수 있도록 허용할 수 있습니다. /var/www/html/Example/
디렉터리에 대한 클라이언트 인증서 인증을 구성할 수 있습니다.
Apache HTTP Server에서 TLS 1.3 프로토콜을 사용하는 경우 특정 클라이언트에 추가 구성이 필요합니다. 예를 들어 Firefox에서 about:config
메뉴의 security.tls.enable_post_handshake_auth
매개 변수를 true
로 설정합니다.
사전 요구 사항
- 서버에서 TLS 암호화가 활성화됩니다.
프로세스
/etc/httpd/conf/httpd.conf
파일을 편집하고 다음 설정을 클라이언트 인증을 구성하려는<VirtualHost>
지시문에 추가합니다.<Directory "/var/www/html/Example/"> SSLVerifyClient require </Directory>
<Directory "/var/www/html/Example/"> SSLVerifyClient require </Directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSLverifyClient require
를 설정해야 클라이언트가/var/www/html/Example/
디렉터리의 콘텐츠에 액세스하기 전에 서버가 클라이언트 인증서의 유효성을 검사해야 합니다.httpd
서비스를 다시 시작합니다.systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
curl
유틸리티를 사용하여 클라이언트 인증 없이https://example.com/Example/
URL에 액세스합니다.curl https://example.com/Example/
$ curl https://example.com/Example/ curl: (56) OpenSSL SSL_read: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required, errno 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 오류는 웹 서버에 클라이언트 인증서 인증이 필요함을 나타냅니다.
클라이언트 개인 키 및 인증서와 CA 인증서를
curl
에 전달하여 클라이언트 인증으로 동일한 URL에 액세스합니다.curl --cacert ca.crt --key client.key --cert client.crt https://example.com/Example/
$ curl --cacert ca.crt --key client.key --cert client.crt https://example.com/Example/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 요청이 성공하면
curl
은/var/www/html/Example/
디렉터리에 저장된index.html
파일을 표시합니다.