object IdHTTPServer1: TIdHTTPServer
Active = True
Bindings = <>
DefaultPort = 433
Intercept = IdServerInterceptOpenSSL1
OnCommandGet = IdHTTPServer1CommandGet
OnCommandOther = IdHTTPServer1CommandOther
ServerSoftware = 'HTTPMail'
AutoStartSession = True
SessionTimeOut = 50000
end
object IdServerInterceptOpenSSL1: TIdServerInterceptOpenSSL
SSLOptions.RootCertFile = 'root.pem'
SSLOptions.CertFile = 'cert.pem'
SSLOptions.KeyFile = 'privkey.pem'
SSLOptions.Method = sslvSSLv3
SSLOptions.Mode = sslmServer
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
Left = 32
end
TIdTCPServer и SSL
Судя по всему эти компаненты умеют шифровать трафик через SSL. Кто-нибудь это пробовал?
Что-то найти какой-нибудь пример, как это работает я не нашел (кроме стандартного про SSLTunel).
На сколько я могу понимать, надо
- Сгенероровать сертификат (Чем?)
- Прицепить его к IdServerInterceptOpenSSL.
- Прицепить IdServerInterceptOpenSSL к Серверу
(а что с клиентом делать?) - Что-то еще сделать, чтобы это зеработало.
http://mabanza.narod.ru/articles/IWSSL.html
Для приобретения опыта можно сначала все сделать по этой статье (выписка сертификата) а потом и для TIdTCPServer переделаешь...
Настройки компонентов
Код:
Вообщем-то я уже сам сообразил как генерить сертификат, правдо делал это в никсовом шеле - теперь буду знать, что можно и в винде.
Вот гуглом нашел пример использования TIdTCPServer и TIdServerIOHandlerSSLOpenSSL (на дельфи). Судя по нему - действительно ни чего страшного и сверхестественного нет. Вот http://adg.bmpcoe.org/IndySSL/Indy10SSLExample.zip
Сам пока не пробовал - вчера уже ближе к ночи он мне попался. Сегодня попробую.
Только сертификат под линуксом генерировал - виндовозная прога была глючная и требовала /usr/etc/... Наверное кривая верчия попалась. Под линуксом же с первого раза.
Сертификат надо скормить серверу. Клиенту - ничего не надо. Надо только саму опцию шифрования включить.
Если кому интересно - могу привести пример кода.