Sunucu, SSL Sertifikaları kullanacak şekilde yapılandırılabilir. Sunucu sertifikalı bir üretim sunucusu elde etmek için, iyi bilinen bir sağlayıcıdan bir sertifika satın almanız gerekir: Namecheap, GoDaddy, Thawte, vb. Test amaçları için bir kendinden imzalı sertifika kullanabilirsiniz (kendinden imzalı bir sertifika kullanan Demos/Chat örneğine bakın).
Sertifika PEM formatında olmalıdır, PEM (Privacy Enhanced Mail'den), RFC 1421 ile 1424 arasında tanımlanmıştır, bu, yalnızca genel sertifikayı (Apache kurulumlarında ve CA sertifika dosyaları /etc/ssl/certs gibi) içerebilen veya genel anahtar, özel anahtar ve kök sertifikalar dahil olmak üzere tüm bir sertifika zincirini içerebilen bir kapsayıcı formatıdır. Tek bir pem sertifikası oluşturmak için, özel anahtar dosyanızı açın, içeriği kopyalayın ve sertifika dosyasına yapıştırın.
Örnek:
certificate.crt
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
certificate.key
-----BEGIN PRIVATE KEY-----
.....
-----END PRIVATE KEY-----
certificate.pem
-----BEGIN PRIVATE KEY-----
.....
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
SSL'yi etkinleştirmek için, yalnızca SSL özelliğini etkinleştirin ve CertFile, KeyFile ve RootFile yollarını yapılandırın. Sertifika tüm sertifika zincirini içeriyorsa (açık anahtar, özel anahtar vb.), yalnızca tüm yolları aynı sertifikaya ayarlayın.
Ayarlamanız gereken başka bir özellik SSLOptions.Port'tur, bu, güvenli bağlantılar için kullanılan bağlantı noktasıdır.
Örnek: 127.0.0.1 IP'sinde ve Port 443'te SSL yapılandırın
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.Port := 443;
oServer.Port := 443;
oServer.Active := true;
Sunucuyu birden fazla IP ve port üzerinde dinleyecek şekilde yapılandırabilirsiniz; nasıl çalıştığını açıklayan Binding makalesini kontrol edin. Sunucu, aynı anda SSL bağlantılarına ve SSL olmayan bağlantılara izin verecek şekilde yapılandırılabilir (elbette farklı portlarda dinleyerek). Yalnızca iki farklı porta bağlanmanız ve bir portu SSL bağlantıları için, diğer portu SSL olmayan bağlantılar için yapılandırmanız gerekir.
Örnek: sunucuyu IP 127.0.0.1, port 80 (şifrelenmemiş) ve 443 (SSL) olarak yapılandırın
oServer := TsgcWebSocketServer.Create(nil);
With oServer.Bindings.Add do
begin
IP := '127.0.0.1';
Port := 80;
end;
With oServer.Bindings.Add do
begin
IP := '127.0.0.1';
Port := 443;
end;
oServer.Port := 80;
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.Port := 443;
oServer.Active := true;