Microsoft MVP성태의 닷넷 이야기
웹: 5. IIS 7에서 클라이언트 측 인증서 사용 시 주의점 [링크 복사], [링크+제목 복사],
조회: 33014
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 5개 있습니다.)

클라이언트 측 SSL 인증서를 사용하는 웹 사이트가 얼마나 될지는 모르겠지만, 그래도 제가 겪은 시행착오를 하나 공유합니다.

저 같은 경우, 클라이언트 측 인증서를 이용하도록 구성해 놓은 일부 웹 페이지가 있습니다. 그러한 페이지들은 다음과 같이 반드시 클라이언트 측 인증서를 필요로 하도록 설정되어 있습니다.

ie7_revoke_error_403_2.png

이렇게 구성된 웹 사이트의 경우, IIS 7로 마이그레이션 한 이후 다음과 같은 오류 현상을 겪을 수 있습니다.

ie7_revoke_error_403_1.png

"
HTTP Error 403 - Forbidden: Access is denied.
Description: You do not have permission to view this directory or page 
using the credentials that you supplied.
"

좀 더 자세한 오류를 보기 위해서, IIS 7이 설치된 머신에서 직접 "https://localhost:443/test.aspx" URL을 입력하고 들어가면, 다음의 링크에 걸린 오류 화면을 볼 수 있습니다.

"자세한 오류 메시지 보기"

이번엔 좀 더 자세하게 다음과 같은 오류 로그를 포함하는 것을 알 수 있습니다.

"
Your client certificate was revoked, or the revocation status could not be determined.
"

그렇습니다. 문제의 원인은 클라이언트 측에서 제출한 인증서의 CRL 목록을 해당 경로에서 구할 수 없을 때, IIS 7 서버에서는 그 인증서에 대한 유효성 검사를 실패하여 그와 같은 오류 화면을 보내주는 것입니다.

이런 경우, 여러분들이 제출하는 클라이언트 측 인증서를 확인해서 아래와 같이 "CRL Distribution Points"의 URL로부터 실제로 CRL 파일을 다운로드할 수 있는지 검증해야 합니다.

ie7_revoke_error_403_3.png


만약, 이미 발행된 모든 클라이언트 인증서에 기재된 URL이 올바르지 않게 구성되어 있다면 다음과 같은 3가지 방법을 이용해서 이를 수정할 수 있습니다.

- 방법 1. 인증서 서비스의 CRL 배포 지점을 수정하고, 다시 모든 클라이언트로 하여금 인증서를 재발급 받도록 합니다. CRL 배포 지점을 수정하는 방법에 대해서는 다음의 토픽을 참고하십시오.

6. CRL(Certificate Revocation List) 관리
; https://www.sysnet.pe.kr/2/0/414

- 방법 2. 이미 발급된 클라이언트들에 대해서는 해당 PC의 HOSTS 파일을 적절하게 수정해 줍니다.

- 방법 3. 저도 아직 방법을 알지 못하고 있지만, IIS 7의 CRL 확인 옵션을 해제합니다. (아마 있거나, 정식 롱혼 서버 릴리즈에서는 있을 것 같습니다.)



이 외에, CRL 배포 지점이 잘못되는 것으로 인해 발생할 수 있는 문제점이라면 IE 7에서의 SSL 사이트 방문이 상당히 느려지는 현상을 경험할 수 있습니다. 이것은, IE 7이 기본적으로 해당 SSL 인증서의 CRL 파일을 확인하도록 설정되어 있는 것에서 나타나는 문제입니다. 다음 화면과 같이 "서버 인증서 해지 확인" 옵션이 제공되고 있으며, 이로 인해 HTTP 트래픽이 한 번 더 발생하게 됩니다. 만약 이 과정에서 해당 CRL 파일을 다운로드할 수 없으면 SSL 사이트 방문이 눈에 띄게 느립니다.

ie7_revoke_error_403_4.png




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/10/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2009-02-12 06시20분
[mcse99@dreamwiz.com] 인증서를 이용한 사용자 인증에 관한 자료를 찾다가 여기까지 왔습니다. 제 생각에는 클라이언트 인증서를 필요로 한다는 것은 클라이언트 컴퓨터에 대한 인증일 수도 있겠지만 클라이언트 사용자에 대한 인증이 더 필요한게 아닌가 합니다.

상용 솔루션(PKI기반 SSO)이 아니고 기본 기능만으로 인증서를 이용해서 사용자인증이 가능하지가 궁금한 부분입니다.(일종의 SSO라고 보아야 하겠죠.) 물론 다대일 매핑을 생성함에 있어서 손이 갈 수 밖에 없겠지만 이론적으로 가능한지가 궁금하네요.(2008에는 이 설정을 할 수 있는 UI자체가 없는지라 2003을 확인하였는데 이론적으로는 가능한 것으로 보여집니다.)
[guest]
2009-02-12 09시10분
IIS 7 Walkthrough: One to One Client Certificate Mapping Configuration
; http://blogs.iis.net/rlucero/archive/2008/05/23/iis-7-walkthrough-one-to-one-client-certificate-mapping-configuration.aspx

말씀하신 다대일 매핑이라는 것이, 여러 개의 인증서를 하나의 사용자 인증으로 매핑시킨다는 거라면, IIS 6에서도 지원했으니 IIS 7에서는 위의 방법을 이용해서 기본적으로 지원이 됩니다.
kevin25

... 181  182  183  184  185  [186]  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
306정성태2/13/200717134기타: 15. .NET 이 생산성이 높다는 증거(!)
304정성태7/21/200619066VS.NET IDE: 41. 하위 폴더의 모든 프로젝트의 출력물을 제거 (Clean)
305정성태7/21/200618758    답변글 VS.NET IDE: 41.1. 하위 폴더의 모든 프로젝트의 출력물을 제거 (Clean) [1]
303정성태7/20/200616826Team Foundation Server: 12. 사용자 계정 재생성에 따른 Version Control 영향
302정성태8/21/200618361Team Foundation Server: 11. TFS Team Build와 VC++ Project 설정
299정성태7/23/200618823개발 환경 구성: 5. VMWare - VM 생성 화면 캡쳐
300정성태7/15/200623239    답변글 개발 환경 구성: 5.1. VMWare 오류 유형 - The handle is invalid.
301정성태7/18/200618210    답변글 개발 환경 구성: 5.2. VMWare - 사용 후기.
298정성태7/14/200618631개발 환경 구성: 4. VMWare Server를 64bit 운영체제에 설치 시 주의 사항 [2]
296정성태7/10/200627903.NET Framework: 73. [ASP.NET] HTC(DHTML Control Behavior)를 WebResource.axd로 제공하는 방법 [3]
295정성태7/1/200621059VC++: 25. Microsoft National Language Support Downlevel APIs 1.0 사용 방법파일 다운로드1
294정성태6/30/200617641.NET Framework: 72. XSDObjectGen.EXE 기능 개선
293정성태6/29/200619399Team Foundation Server: 10. TFS 버전 컨트롤(TFVC)에 참여시킨 프로젝트의 로컬 경로를 옮기는 방법
290정성태6/26/200616765Team Foundation Server: 9. HTTPS를 통한 Team Server 접근 - 두 번째 이야기 [1]
291정성태6/26/200618119    답변글 Team Foundation Server: 9.1. [선행 작업] HTTPS 를 통한 Team Server 접근 - 두번째 이야기 [1]
292정성태6/26/200617870    답변글 Team Foundation Server: 9.2. TF30177 오류 발생
307정성태8/3/200619537    답변글 Team Foundation Server: 9.3. Team Server 접근 이름을 바꾸는 방법 [1]파일 다운로드1
308정성태2/18/200719180        답변글 Team Foundation Server: 9.4. Team Server HTTPS 접근 완료. ^^ [1]
288정성태6/26/200634058오류 유형: 10. error MSB6006: "aspnet_merge.exe" exited with code 1
286정성태6/23/200622160웹: 4. 웹 사이트 식별자(Identifier) 값 변경
285정성태6/20/200622457오류 유형: 9. [TFS] Report 관련 서비스를 조회할 때 rsErrorImpersonatingUser 오류 메시지 발생 [1]
284정성태6/19/200620156VS.NET IDE: 40. FxCop - IDE 에서 제공해 주는 SuppressMessage 코드
283정성태1/19/200721005Team Foundation Server: 8. 소스 세이프에서 TFS SourceControl 로 마이그레이션 [2]
279정성태12/27/200626371개발 환경 구성: 3. VS.NET 원격 디버깅 [1]
280정성태6/12/200625893    답변글 개발 환경 구성: 3.1. VS.NET 2003 원격 디버깅 설정
281정성태8/11/200627379    답변글 개발 환경 구성: 3.2. VS.NET 2005 원격 디버깅 설정
... 181  182  183  184  185  [186]  187  188  189  190  191  192  193  194  195  ...