Synapse'ı test ediyorum ve nasıl güvenli bir bağlantı kurabilirim bilmek istiyorum. SSL'yi desteklediğini fark ettim, ancak gereksinimlerime uygun olup olmadığından emin değilim. CA’dan sertifika almıyorum. Sadece sunucu programım ve istemci programım arasındaki tüm verileri şifrelemek istiyorum. Elbette verileri göndermeden önce şifreleyebilirim. Ancak SSL verileri şifreleyebilirse, belki de kullanabilirim. Bildiğim kadarıyla SSL, "şifreleme" ve "kimlik doğrulama" içindir. İhtiyacım olan sadece "şifreleme" dir. Synapse ile mümkün mü?Synapse kullanarak güvenli bir bağlantı nasıl kurulur?
GÜNCELLEME: daemon_x ve Synapse, Lukas Gebauer yazarı yardımcı olmak için
sayesinde, nihayet o iş yapmak düşünüyorum. İşte ne yaptım şunlardır:
Sunucu Tarafı:
1) Biriminizde ssl_openssl kullanır ve exe dosyasının aynı dizine 'libeay32.dll' ve 'SSLeay32.dll' koydu
2) Bir bağlantı kabul edildikten sonra, yeni oluşturulan soket için aşağıdaki kod satırlarını ekleyin.
fclient.SSLAcceptConnection;
İstemci tarafı:
1) Biriminizde ssl_openssl kullanır ve exe dosyası
2) aynı dizine 'libeay32.dll' ve 'SSLeay32.dll' koymak Sunucuya bağlandıktan sonra, aşağıdaki satırı ekleyin.
fclient.SSLDoConnect;
Hata yoksa, bağlantı güvenlidir. Ancak, Synapse belgesinde belirtildiği gibi kodunuzu çalıştırdığınızda, SSLAcceptConnection öğesinin geri dönmek için biraz zaman aldığını fark edebilirsiniz. Yani, bir şeyleri hızlandırmak istiyorsanız, bir sertifika dosyası ve özel anahtar dosyasını önceden oluşturmalısınız. Bir sertifika ve özel anahtarı yoksa Ve SSLAcceptConnection
fclient.SSL.CertificateFile := 'bs-cert';
fclient.SSL.PrivateKeyFile := 'bs-privatekey';
önce aşağıdaki kodu ekleyin, kendinden imzalı sertifika ve özel anahtar almak için ssl_openssl içinde "CreateSelfSignedCert" bakınız. Örneğin WriteStrToStream, FCertificate ve FPrivatekey dosyalarını dosyalara kaydedebilir ve daha sonra kullanabilirsiniz.
Yardımlarınız için minnettarım. Benim için en fazla karışıklık, sertifikam olmadığı zaman şifrelenmiş kanalı nasıl kullanabileceğimi bilmem. Sunucu tarafında bir bağlantı kabul edildikten sonra "SSLAcceptConnection" u çağırmayı denedim. Ve sunucuya bağlı sonra istemci tarafında "SSLDoConnect" çağırdı. Çalışmak için "görünüyor". Ama şifreyi nerede kurabilirim? "SSL.Password" ı denedim, ancak şifrenin şifresini çözmek için görünüyor. Şifre farklı olsa bile bağlantı kurulur. – trudger
@trudger Kendinden imzalı sertifikalar oluşturabilirsiniz. – Harriv
Sertifikayı oluşturmak için programıma entegre edebileceğim herhangi bir bileşen/kod var mı? Kullanıcıların sertifikayı kendilerinin oluşturması biraz karmaşık bir durum. – trudger