SChannel 인증서

· 기능

sgcWebSockets 4.4.7부터 SChannel을 암호화 라이브러리로 사용한 인증서 사용이 지원돼요.

SChannel 구현은 2가지 유형의 인증서 인증을 지원해요:

1. PFX 인증서 사용

2. Windows 시스템에 이미 설치된 인증서의 해시 지문 설정

PFX 인증서 

PFX 인증서는 인증서와 개인 키를 포함하는 파일이에요. PEM 형식의 인증서가 있으면 사용하기 전에 PFX로 변환해야 해요.

다음 openssl 명령을 사용해 PEM 인증서를 PFX로 변환하세요.

openssl pkcs12 -inkey certificate-pem.key -in certificate-pem.crt -export -out certificate.pfx

인증서가 PFX 형식이면 인증서를 배포하고 TLSOptions.Certificate 속성에 경로를 설정하기만 하면 돼요.

 

TLSOptions.IOHandler := iohSChannel;
TLSOptions.CertFile := '<certificate path>';
TLSOptions.Password := '<certificate optional password>'; 

해시 지문

인증서가 이미 Windows 인증서 저장소에 설치되어 있으면 인증서 지문을 알고 TLSOptions.SChannel_Options 속성에 설정하기만 하면 돼요.

PowerShell에서 인증서의 해시를 찾는 것은 인증서 컨테이너에서 dir 명령을 실행하는 것만큼 쉬워요.

dir cert:\localmachine\my

해시는 16진수 지문(Thumbprint) 값이에요.

Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint Subject
---------- -------
C12A8FC8AE668F866B48F23E753C93D357E9BE10 CN=*.mydomain.com

지문 값을 얻으면 TLSOptions.SChannel_Options 속성에 해시와 인증서 위치를 설정해야 해요.

TLSOptions.IOHandler := iohSChannel;
TLSOptions.SChannel_Options.CertHash := '<certificate thumbprint>';
TLSOptions.SChannel_Options.CertStoreName := '<certificate store name>';
TLSOptions.SChannel_Options.CertStorePath := '<certificate store path>';
TLSOptions.Password := '<certificate optional password>';