TsgcHTTP3Client › 속성 › TLSOptions

TLSOptions 속성

QUIC 연결에서 사용하는 TLS 1.3 매개변수를 구성합니다.

구문

property TLSOptions: TsgcHTTP3SSLOptions;

기본값

인스턴스는 컴포넌트와 함께 자동으로 생성됩니다.

설명

QUIC는 TLS 1.3이 전송 계층에 내장되어 있으므로 HTTP/3 연결은 항상 암호화되며 TLSOptions를 비활성화할 수 없습니다. 이를 사용하여 보안 연결을 구성하십시오. 상호 TLS를 위한 클라이언트 인증서와 개인 키, 서버를 확인하는 데 사용되는 신뢰할 수 있는 루트 인증서, 피어 검증 모드 및 ALPN 프로토콜 식별자(h3)를 구성합니다. Host에 설정된 호스트 이름은 TLS SNI 확장에서 전송되며 서버 인증서와 일치하는지 확인됩니다.

VerifyCertificate(Boolean, 기본값 True)는 서버 인증서를 검증합니다. 검증 결과가 실제로 적용되므로 유효하지 않은 체인은 연결을 중단시킵니다. 또한 검증 과정에서 인증서가 접속 대상 호스트에 바인딩됩니다. DNS 이름은 인증서의 호스트 이름과 대조되고 IP 리터럴은 IP 항목과 대조되므로, 체인은 유효하지만 다른 이름으로 발급된 인증서는 거부됩니다. 이 바인딩은 연결 대상에서 자동으로 결정되므로 추가로 설정할 것은 없습니다. RootCertFile이 비어 있으면 운영 체제의 기본 신뢰 저장소가 사용됩니다. 검증을 비활성화하면 연결이 가로채기에 취약해지므로, 통제된 테스트 환경이 아니라면 활성화된 상태로 두십시오.

IOHandler(TwsTLSIOHandler, 기본값 iohOpenSSL)는 QUIC 핸드셰이크의 TLS 엔진을 선택합니다. iohOpenSSL은 OpenSSL 경로와 자동 엔진 선택을 그대로 유지합니다. iohNativeTLS는 sgcCrypto 팩의 네이티브 TLS 엔진에서 TLS 1.3 핸드셰이크를 실행하고 항상 sgc QUIC 엔진을 사용하며, 서버 인증서는 RootCertFile 또는 시스템 루트에 대해 호스트 이름을 포함하여 검증됩니다. 세션 티켓, 재개, 0-RTT는 OpenSSL에서와 동일하게 동작합니다. QUIC 패킷 보호도 네이티브이므로 OpenSSL을 전혀 로드하지 않습니다. OpenSSL 없이 실행하기를 참조하십시오.

업그레이드하는 경우, 이전 버전에서는 검증 결과를 계산한 다음 그대로 폐기했다는 점에 유의하십시오. 따라서 VerifyCertificate가 활성화되어 있어도 클라이언트는 신뢰할 수 없는 기관이 서명한 인증서나 다른 호스트로 발급된 인증서를 포함해 모든 인증서를 수락했습니다. 이제는 검증이 실제로 적용됩니다. 그동안 조용히 수락되던 인증서가 이제 검증되기 때문에, 이전에는 정상적으로 연결되던 환경에서도 연결이 실패할 수 있습니다. 발급 기관을 신뢰 저장소에 설치하거나, 해당 기관이 포함된 번들을 RootCertFile이 가리키도록 설정하십시오.

예제


oClient := TsgcHTTP3Client.Create(nil);
oClient.TLSOptions.VerifyCertificate := True;
oClient.TLSOptions.RootCertFile := 'ca.pem';

속성으로 돌아가기