TsgcWebSocketServer속성 › SSLOptions

SSLOptions 속성

TLS 리스너에 대한 인증서 경로, TLS 버전 선택, OpenSSL 튜닝을 보유합니다.

구문

property SSLOptions: TsgcWSSSL_Options read FSSLOptions write SetSSLOptions;

기본값

Version=tlsUndefined, VerifyCertificate=False

설명

SSLTrue인 경우 서버를 활성화하기 전에 인증서 자료를 제공하십시오. RootCertFile, CertFileKeyFile은 PEM 파일을 가리킵니다(파일에 전체 체인이 포함된 경우 세 개 모두 동일한 경로 사용). Password는 개인 키가 암호화된 경우에만 필요합니다. 클라이언트 인증서를 요청하고 검증하려면 VerifyCertificateTrue로 설정하십시오(하위 옵션 FailIfNoCertificateVerifyClientOnce가 검사를 세밀하게 조정함). VerifyDepth는 체인 길이를 제어합니다. Version은 특정 TLS 버전(tls1_0, tls1_1, tls1_2, tls1_3)을 선택하거나 협상을 열어 둡니다(tlsUndefined). OpenSSL_Options는 저수준 옵션을 노출합니다. APIVersion(oslAPI_1_0/oslAPI_1_1/oslAPI_3_0), OpenSSL 바이너리를 찾기 위한 LibPath/LibPathCustom, UnixSymLinks, ECDHE, CipherList, CurveList, MinVersion 및 호스트명/IP 검증을 위한 X509Checks입니다.

VerifyCertificate는 클라이언트 인증서가 발급된 이후에 해지되었는지 여부에 대해서는 아무것도 알려주지 않으므로, 키를 도난당하고 그 일련번호가 이미 해지된 인증서라도 만료될 때까지 여전히 세션을 열 수 있습니다. IOHandler=iohSChannel인 경우, 클라이언트 인증서의 해지 상태는 SChannel_Options.Revocation.Check가 기본값인 scrcDisabled 이외의 값으로 설정된 경우에만 조회됩니다. scrcEndCertificate는 클라이언트 인증서만 확인하고, scrcChainExcludeRoot는 중간 인증서까지 함께 확인하며, scrcChain은 루트까지 포함합니다. Revocation.Timeout은 CRL 및 OCSP 조회 전체를 제한하므로(기본값 5000ms) 도달할 수 없는 응답자가 핸드셰이크를 지연시킬 수 없고, Revocation.CacheOnly는 Windows가 이미 캐시해 둔 데이터만 사용하며 네트워크에 접속하지 않습니다. Revocation.IgnoreRevocationOfflineRevocation.IgnoreNoRevocationCheck(둘 다 True)는 도달할 수 없는 응답자나 해지 정보를 게시하지 않는 클라이언트 인증서를 수락할지 결정합니다. 해지가 확인된 인증서는 항상 거부됩니다. Preset := tlspSecureDefaults를 설정하면 이 확인이 scrcChainExcludeRoot로 활성화되고 두 가지 소프트 실패 설정은 유지되므로, 기존에 허용되던 클라이언트는 계속 허용됩니다. Server SSL | SChannel Client Certificate Revocation을 참조하십시오.

예제


oServer := TsgcWebSocketServer.Create(nil);
oServer.SSL := true;
oServer.SSLOptions.CertFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.KeyFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.RootCertFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.Version := tls1_3;
oServer.SSLOptions.OpenSSL_Options.MinVersion := tls1_2;
oServer.SSLOptions.Port := 443;
oServer.Active := true;

속성으로 돌아가기