인증서 검증 - CRL 체크 설정
CRL 체크 관련해서 전에 말씀을 드렸었지요?
IIS 7에서 클라이언트 측 인증서 사용 시 주의점
; https://www.sysnet.pe.kr/2/0/418
CRL(Certificate Revocation List) 관리
; https://www.sysnet.pe.kr/2/0/414
IE 6/7 측에서도 서버 인증서의 CRL을 체크할 수 있는 옵션이 있는 것처럼, IIS 6/7에서도 클라이언트에서 제공하는 인증서의 CRL을 체크할 수 있는 옵션이 제공됩니다. 아쉽게도 관리 콘솔에서는 그 기능을 제공하지는 않고 간단한 스크립트를 만들어야 가능합니다. 이에 대해서는 다음의 토픽을 참고하십시오.
Client Certificates Authentication - Dirty Trick To Disable CRL Check. For Demos Only!
; http://blogs.msdn.com/alikl/archive/2007/08/14/client-certificates-authentication-dirty-trick-to-disable-crl-check-for-demos-only.aspx
간단히 정리해 보면, IIS 6에서는 다음과 같은 간단한 스크립트릍 통해 가능하고.
Set oWeb = GetObject("IIS://localhost/W3SVC")
oWeb.CertCheckMode = 1 ' 기본값: 0
oWeb.SetInfo
관련 레지스트리 경로도 누군가 파악해서 올려놨군요.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo\0.0.0.0:443
DefaultSslCertCheckMode
Which was defult set to 0, but I changed it to 1 and rebooted (important) and....guess what...it worked!
IIS 7에서는 netsh을 통해서 가능합니다. netsh을 통한 방법은 일단 서버 측에 매핑된 SSL을 제거한 다음, 다시 설정할 때 클라이언트 측 인증서의 CRL 체크 여부를 같이 하는 것 같습니다.
"netsh http show sslcert" will show the details of the existing sslcert
SSL Certificate bindings:
-------------------------
IP:port : 0.0.0.0:443
Certificate Hash : ...
Application ID : ...
Certificate Store Name : ...
...
then delete the cert using "netsh http delete sslcert"
and recreate using
netsh http add sslcert ipport=0.0.0.0:443 certhash=... appid=...
certstorename=MY verifyclientcertrevocation=disable
of course, this would require some parsing code to do in a script, would be easier to do using HttpSetServiceConfiguration with HttpServiceConfigSSLCertInfo - http://msdn2.microsoft.com/en-us/library/aa364503.aspx
[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]