TsgcWebSocketServer_HTTPAPI › 메서드 › ReloadCertificates

ReloadCertificates 메서드

서버를 중지하지 않고 HTTP.sys SSL 바인딩의 갱신된 TLS 인증서를 다시 바인딩합니다. 이미 수립된 연결에는 영향이 없습니다.

구문

procedure ReloadCertificates;

설명

인증서를 갱신한 후(예: ACME 또는 Let's Encrypt 갱신) ReloadCertificates를 호출하면 다시 시작하지 않고 새 인증서를 설치할 수 있습니다. 새 SSLOptions.Hash(인증서가 다른 저장소에 있는 경우 CertStoreName도)를 할당한 다음 ReloadCertificates를 호출하십시오. 서버가 활성 상태인 동안 어느 스레드에서든 호출할 수 있습니다. 서버가 활성 상태가 아니거나 SSL이 비활성화된 경우에는 아무 작업도 하지 않습니다. BindingOptions.ConfigureSSLCertificate가 True(기본값)이면, ReloadCertificates는 Windows가 지원하는 경우 각 SSL 바인딩의 인증서를 원자적으로 다시 바인딩합니다. SSL로 서버를 시작할 때와 동일한 관리자 권한이 필요합니다. 이미 수립된 연결은 영향을 받지 않으며 새 TLS 핸드셰이크는 새 인증서를 사용합니다. 새 인증서를 바인딩할 수 없으면 예외가 발생하고 서버는 이전 인증서를 계속 제공합니다. ConfigureSSLCertificate가 False이면 바인딩이 구성 요소 외부(netsh)에서 관리되므로 ReloadCertificates는 예외를 발생시키며, 바인딩은 netsh로 업데이트해야 합니다. .NET에서는 http.sys 서버가 인증서를 다시 바인딩할 수 없는 HttpListener 위에서 실행되고 바인딩은 항상 netsh로 관리되므로, 서버가 https로 활성 상태인 동안 ReloadCertificates는 NotSupportedException을 발생시키며 인증서는 netsh http update sslcert로 갱신해야 합니다. Secure Connections을(를) 참조하십시오.

예제


procedure TForm1.RenewCertificate;
begin
  try
    oServer.SSLOptions.Hash := 'A1B2C3D4E5F60718293A4B5C6D7E8F9012345678';
    oServer.ReloadCertificates;
  except
    on E: Exception do
      ShowMessage('Certificate reload failed: ' + E.Message);
  end;
end;

메서드로 돌아가기