TsgcWebSocketServer_HTTPAPI › Yöntemler › ReloadCertificates
HTTP.sys SSL binding'lerinin yenilenen TLS sertifikasını sunucuyu durdurmadan yeniden bağlar; kurulmuş bağlantılar etkilenmez.
procedure ReloadCertificates;
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.
procedure TForm1.RenewCertificate;
begin
try
oServer.SSLOptions.Hash := 'A1B2C3D4E5F60718293A4B5C6D7E8F9012345678';
oServer.ReloadCertificates;
except
on E: Exception do
ShowMessage('Certificate reload failed: ' + E.Message);
end;
end;