Microsoft MVP성태의 닷넷 이야기
웹: 5. IIS 7에서 클라이언트 측 인증서 사용 시 주의점 [링크 복사], [링크+제목 복사],
조회: 33037
글쓴 사람
정성태 (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)
127정성태3/29/200514572        답변글 VS.NET IDE: 28.4. [추가] SQL 2005 2005-02 CTP 버전에서 달라진 점
123정성태3/25/200518460    답변글 .NET Framework: 28.3. Uninstalling software without using Add Remove Programs...
108정성태3/4/200517935.NET Framework: 27. 시스템 이벤트 로그에 쌓이는 {00020906-0000-0000-C000-000000000046} 보안에러
107정성태3/1/200518145COM 개체 관련: 15. COM: Control 유형인 경우, IObjectWithSite 를 구현해도 SetSite/GetSite 가 호출이 안됨
106정성태2/28/200517441COM 개체 관련: 14. 탐색기 "처럼" 파일 열기
105정성태2/28/200516500.NET Framework: 26. VS.NET 2005 : 설치 프로젝트 - .NET Framework 설치 강제화
139정성태11/14/200514673    답변글 .NET Framework: 26.1. ^^ 역시, 배려가 되어 있네요. 제가 못 찾은 것이었습니다.
104정성태2/27/200517372VS.NET IDE: 23. MSI 설치 중에 GetLocalTime / GetSystemTime API 사용
132정성태3/30/200516992    답변글 VS.NET IDE: 23.1. [추가]: MSI 설치 동작 원리
102정성태2/16/200519656.NET Framework: 25. Verify that you are a member of the 'Debugger Users' group on the server. [2]
101정성태2/15/200517374.NET Framework: 24. WMI Win32_NTLogEvent 관리 이벤트를 Windows 2000 에서는 "Access Denied" 가 발생하는 문제파일 다운로드1
100정성태2/15/200523462VS.NET IDE: 22. 방화벽 환경에서의 WMI 연결을 위한 포트 설정 [2]
99정성태2/15/200521497COM 개체 관련: 13. 비동기 Drag & Drop 구현 : IAsyncOperation
103정성태2/23/200517695    답변글 COM 개체 관련: 13.1. [관련 자료] 그외 Drag & Drop 링크파일 다운로드1
97정성태2/14/200520651VS.NET IDE: 21. 설치된 Platform SDK 버전확인 방법
96정성태2/14/200522672기타: 9. http://www.google.com/webhp?complete=1&hl=en 검색에 관해서.
95정성태2/14/200532010VS.NET IDE: 20. Win32 특권 정리 [1]
94정성태1/29/200523314VC++: 13. VS.NET 2005 VC++ 컴파일러 에러 : cannot instantiate abstract class
93정성태1/29/200519214VS.NET IDE: 19. 혹시 VS.NET 2005 Beta2(2004/12 CTP Team System 버전)이 다운이 자주 되나요? [2]
92정성태1/29/200518031.NET Framework: 23. Unmanaged 환경에서 Managed DLL에 정의된 메서드 호출 시 오류 확인하는 방법
91정성태11/14/200518656VC++: 12. VS.NET 2005 VC++ Debug: Expression: ( (state != ST_INVALID ) )
90정성태1/27/200519466.NET Framework: 22. Debug: The underlying connection was closed: Unable to connect to the remote server.
89정성태1/26/200523956VC++: 11. Delay Loaded DLL
87정성태1/23/200517513VS.NET IDE: 18. VS.NET 2005 Beta 1 - VC++ 프로젝트에서 Connection Point 구현시 버그
88정성태1/23/200517238    답변글 VS.NET IDE: 18.1. VS.NET 2003 : VC++ 프로젝트에서 Connection Point 추가시에도 버그
86정성태1/23/200522966.NET Framework: 21. Code Snippet - Enum과 관련된 다양한 형변환 [1]
... 181  182  183  184  185  186  187  188  189  190  191  192  [193]  194  195  ...