SharePoint 서버에서의 인증서 유효성 검사 작업 비활성화 #1

[주의 사항]

본 블로그에 게시된 정보의 내용 (첨부 문서, 링크 등)은 작성일 현재 기준이며 예고없이 변경 될 수 있습니다.

또한, 참고용으로만 제공됨으로 Microsoft에 책임이 없음을 알려 드립니다. 반드시 적용 전 충분한 테스트를 진행하시기 바랍니다.

 
[요약]

SharePoint 서버에서의 인증서 유효성 검사 작업 비활성화

 
[원인 또는 해결 방법]

본 Post에서는 인터넷 연결이 제한된(폐쇄망) 환경에서 인증서 유효성 검사를 비활성화함으로써 성능저하를 피할 수 있는 방법을 설명합니다.

 

 

  • SharePoint Web.config 의 servicePointManager 설정
 기존 web.config 파일을 백업한 뒤 <system.net> 섹션 하위에 <settings> 하위에 네트워크 리소스에 대한 연결 구성을 담당하는 servicePointManager 부분을 추가합니다.이후, 아래와 같이 checkCertificateName 설정과 checkCertificateRevocationList 설정을 false 로 추가합니다. <settings> <servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/> </settings>  web.config 설정을 변경 후 저장한 다음 IIS Reset을 진행합니다. [참고 자료]<system.Net> 요소(네트워크 설정)https://msdn.microsoft.com/ko-kr/library/6484zdc1(v=vs.110).aspx <servicePointManager> 요소(네트워크 설정)https://msdn.microsoft.com/ko-kr/library/zsk61s76(v=vs.110).aspx
attribute 설명
checkCertificateName 인증서 사용 전에 인증서의 이름이 서버 호스트 이름과 일치하는지를 시스템이 확인해야 하는지 여부를 지정합니다. 기본값은 true입니다.
checkCertificateRevocationList 인증서 사용 전에 인증서가 해지되었는지를 시스템이 확인해야 하는지 여부를 지정합니다. 기본값은 false입니다.
.

 

  • generatePublisherEvidence 설정 변경
 [참고] <generatePublisherEvidence> 요소https://msdn.microsoft.com/ko-kr/library/bb629393(v=vs.110).aspx CLR(공용 언어 런타임)은 어셈블리에 대한 Publisher 증명 정보를 만들기 위해 로드 시 Authenticode 서명을 확인합니다. 그러나 기본적으로 대부분의 응용 프로그램에는 Publisher 증명 정보가 필요하지 않습니다. 표준 CAS 정책은 PublisherMembershipCondition을 사용하지 않습니다.  사용자 응용 프로그램이 사용자 지정 CAS 정책을 사용하는 컴퓨터에서 실행되지 않거나 부분 신뢰 환경에서 PublisherIdentityPermission에 대한 요청을 충족시키기 위한 것이 아닐 경우 게시자 서명 확인과 관련된 불필요한 시작 작업을 수행하지 않아야 합니다. 전체 신뢰 환경에서는 ID 권한 요청이 항상 성공합니다.  서비스에서 <generatePublisherEvidence> 요소를 사용하여 시작 성능을 향상시키는 것이 좋습니다. 이 요소를 사용하면 시간이 초과되거나 서비스 시작이 취소될 수 있는 지연을 방지할 수도 있습니다. <configuration>    <runtime>        <generatePublisherEvidence enabled="false"/>    </runtime></configuration>

 

 

  • 방화벽 Open 및 Host 파일을 수정을 통한 Workaround
 CRL 검사는 인증서의 유효성을 확인하는 데 유용한 보안 메커니즘입니다. 서버에서는 이를 위해 crl.microsoft.com에 접속 시도하게 됩니다. 또한, SharePoint에서의 App 사용을 위한 조회를 위해 store.office.com에도 접근 시도를 할 수 있습니다.외부 인터넷 연결이 되지 않는 환경일 경우 방화벽에서 해당 URL 접속을 Open할 수 있으나, 이것이 불가능한 경우 아래와 같이 Host 파일 수정을 통한 Workaround를 적용할 수 있습니다. SharePoint 서버의 ULS 로그 및 이벤트 로그에 ‘https://store.office.com/appinfo/query?rt=XML’ 와 같이 store.office.com에 접속을 시도하는 로그가 확인되는 경우, 아래와 같이 Host 파일 수정을 통한 Workaround를 적용해 볼 수 있으며,이 외에 CRL 체크 시 접속을 시도하는 crl.microsoft.com 역시 같은 방식으로 Workaround를 적용할 수 있습니다. 또한, 별도로 사용하는 공인 인증서가 있고, 이에 대한 접속 시도가 ULS 로그에서 확인되는 경우 역시 같은 방법으로 Host 파일 수정 Workaround를 적용해 볼 수 있습니다.  서버의 Host 파일에 아래 예시와 같이 로컬 호스트(127.0.0.1)로 추가합니다.127.0.0.1  store.microsoft.com crl.microsoft.com 

 

  • CRL 직접 설치
 보안 정책으로 인해 서버가 https://crl.microsoft.com에 연결할 수 없지만 CRL을 계속 확인하려는 경우,다음과 같이 매 달 새로운 crl 파일을 수동으로 다운로드 하여 서버에 설치할 수 있습니다. https://crl.microsoft.com/pki/crl/products/CodeSignPCA.crlhttps://crl.microsoft.com/pki/crl/products/CodeSignPCA2.crlhttps://crl.microsoft.com/pki/crl/products/microsoftrootcert.crlhttps://crl.microsoft.com/pki/crl/products/CSPCA.crlhttps://crl.microsoft.com/pki/crl/products/MicCodSigPCA_08-31-2010.crl 설치 명령어는 다음과 같습니다.Certutil –addstore CA CodeSignPCA.crlCertutil –addstore CA CodeSignPCA2.crlCertutil –addstore CA microsoftrootcert.crlCertutil –addstore CA CSPCA.crlCertutil –addstore CA MicCodSigPCA_08-31-2010.crl [참고]https://blogs.msdn.microsoft.com/chaun/2014/05/01/best-practices-for-crl-checking-on-sharepoint-servers/ 

 감사합니다.