TsgcWebSocketServer_HTTPAPI › Yöntemler › ReloadCertificates

ReloadCertificates Yöntem

HTTP.sys SSL binding'lerinin yenilenen TLS sertifikasını sunucuyu durdurmadan yeniden bağlar; kurulmuş bağlantılar etkilenmez.

Sözdizimi

procedure ReloadCertificates;

Remarks

ReloadCertificates'i bir sertifika yenilemesinden sonra (örneğin bir ACME veya Let's Encrypt yenilemesi) yeni sertifikayı yeniden başlatmadan yüklemek için çağırın. Yeni SSLOptions.Hash değerini (sertifika başka bir depodaysa CertStoreName'i de) atayın, ardından ReloadCertificates'i çağırın. Sunucu etkinken herhangi bir iş parçacığından çağrılabilir. Sunucu etkin değilse veya SSL devre dışıysa çağrı hiçbir şey yapmaz. BindingOptions.ConfigureSSLCertificate True olduğunda (varsayılan), ReloadCertificates her SSL binding'inin sertifikasını Windows'un desteklediği yerlerde atomik olarak yeniden bağlar. Sunucuyu SSL ile başlatmakla aynı yönetici haklarını gerektirir. Kurulmuş bağlantılara dokunulmaz ve yeni TLS el sıkışmaları yeni sertifikayı kullanır. Yeni sertifika bağlanamazsa bir istisna oluşur ve sunucu önceki sertifikayı sunmaya devam eder. ConfigureSSLCertificate False olduğunda binding bileşenin dışında (netsh) yönetilir, bu nedenle ReloadCertificates bir istisna oluşturur ve binding netsh ile güncellenmelidir. .NET'te http.sys sunucusu sertifikayı yeniden bağlayamayan HttpListener üzerinde çalışır ve binding her zaman netsh ile yönetilir, bu nedenle sunucu https ile etkinken ReloadCertificates NotSupportedException oluşturur ve sertifika netsh http update sslcert ile yenilenmelidir. Bkz. Güvenli Bağlantılar.

Örnek


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

Yöntemlere Dön