IIS 에서, 최신 루트 대신, Cross-Signing 루트로 우회 출력?

기술자료, 설치/적용 이슈 주요 사례

Apache, NginX 와 같은 다른 웹서버와 달리, Windows IIS 에서는 루트/체인 경로를 명시적으로 지정할수 없습니다. OS 자체가 알아서 경로를 판단하고 클라이언트에 출력하는 구조로 예상할뿐, Microsoft 에서도 공식 기술자료는 없습니다.

대체적으로, 발급된 서버인증서와 루트인증서간 최단 경로를 기준으로 출력하는것으로 추정만 될뿐. 그래서, 최단 경로에 해당되는 루트인증서를 인증서 스토어에서 삭제를 하면, 그 다음 경로에 해당하는 인증서를 출력?할것으로 기대합니다. 다만 이건 어디까지나 추정일뿐 입니다.


본 내용은 인증기관 CA 의 공식적인 자료가 아니며, 인터넷 커뮤니티에서 떠도는 일종의 트윅이므로, 이에 대한 추가 문의는 일체 불가합니다.  아래 내용을 적용한다고 해서, 루트/체인 경로가 변경된다는 보장이 없으며, 이를 적용했을때 발생하는 모든 문제/책임은 전적으로 적용자에게만 있습니다. 어디까지나 선택적 정보일뿐입니다.

아래와 같이 해도 구형 Client 에서의 루트인증서 관련 접속 문제가 있다면, IIS 웹서버가 아닌, 명시적 출력이 가능한 Apache, NginX 같은 웹서버로 변경하는게 더 현명한 방법일수 있습니다. (물론 변경에 따른 개발 리소스 투자를 해야 한다는 단점이 있음).

절대 착각하지 말아야 할 부분은, 이러한 작동은 SSL 인증서 자체와는 관련이 없는, 온전히 웹서버 단독 작동이라는 점이며,  SSL 인증서는 표준이며 대부분의 인증기관 CA 에서는 구형 디바이스 호환성을 위해서  Cross-Signing 구조를 채택하고 있다는 점입니다.

-------------

Windows 명령 프롬프트> mmc 실행
콘솔UI ) 파일 ➜ 스냅인 추가/제거 ➜ 인증서 (선택/추가) ➜  컴퓨터 계정 (다른것 선택 X) ➜ 인증서 스토어 관리 콘솔








'신뢰할 수 있는 루트 인증기관' 및 '타사 루트 인증 기관' 에서  최신 루트가 있는 경우 아래와 같은 조치(기능 비활성화)를 각각 설정합니다.



대상 루트 인증서를 더블클릭(또는 속성보기)하여, 속성창을 아래와 같이 실행후, [속성편집]을 클릭합니다.



속성 창의, [일반] 탭에서 아래와 같은 [인증서 용도] 에서, '이 인증서의 모든 용도를 사용 안함' 설정을 적용합니다.




루트 인증서의 모든 용도가 해제된 경우 (이후 IIS 재시작 권장), 루트 인증서의 기능이 없어지기 때문에, Windows 에서는 대체 루트 경로를 찾게됩니다. 적용후에는 실제로 오래된 디바이스에서 Cross-Signing 루트로 출력되는지 확인까지 해야 합니다. 

출력이 권장되는 루트/체인 경로 정보는, zip 첨부내에 루트/체인 설명서 PDF 에 경로가 설명되어 있습니다. 서버측에서 이 경로를 모두 출력해줘야 호환성이 높아집니다. 

위 설정은 적용한 대상 루트 인증서를 삭제하거나 또는 명시적으로 설정에서 기능 변경을 하지 않는 이상 계속 유지가 됩니다 (원래 기능으로 되돌리고 싶으면, 속성값을 변경하거나 또는 대상 인증서를 삭제후 다시 Import 하면 원래 기능으로 됨) (차후 웹브라우저에 의해 Cross-Signing 루트도 비신뢰에 포함되는 경우에는 위 설정은 원복을 해야 함)



IIS 자체 작동 문제이므로, Sectigo 뿐만 아니라 DigiCert, GlobalSign 등 모든 인증기관 CA 에서 최신 루트로 교체될 때마다 발생할수 있는 사항입니다. CA 마다 루트 배포 시점이 각각 다르기 때문에, 특정 시점에 특정 CA 에서만 발생할수는 있습니다. 

위와 같은 루트 인증서 기능 비활성화를 했음에도 이슈가 해결되지 않는 경우에는, 비용 보다는 이슈(크리티컬 하다고 판단하는 경우) 관점을 가진 고객사에서는 다른 CA 제품으로 변경 적용도 검토해 볼 필요가 있습니다.


컨텐츠의 무단 전재/복사 및 이메일 주소의 수집/이용을 허용하지 않습니다.
SecureSign. All rights reserved.