Delphi Indy - Como obter certificados SSL para um link de cliente / servidor SSL-TCP com o Indy 10

Sou completamente novo em SSL e essas coisas cifrantes, mas preciso fazer com que aplicativos Delphi XE6 de cliente e servidor de comunicação sejam executados em dispositivos móveis. A comunicação TCP deve ser criptografada com segurança.

Para começar, eu simplesmente escrevi as seqüências de troca de cliente e servidor Win32 baseadas em Delphi / Indy TIdTCPServer / TIdTCPClient. (Emitido a partir das demos indy10clieservr encontradas no SourceForge: svn: //svn.code.sf.net/p/indy10clieservr/code/1_sample Simple String Exchange)

Tentei modificá-los para codificar a comunicação adicionando um componente TIdServerIOHandlerSSLOpenSSL no servidor e um TIdSSLIOHandlerSocketOpenSSL no cliente, anexando-os respectivamente ao TIdTCPServer e TIdTCPClient.

Defino as seguintes propriedades nos dois lados: - SSLOptions.Method = sslvSSSv23 - SSLOptions.Mode = sslmServer / sslmClient (respectivamente) - SSLOptions.VerifyDepth = 2

E adicionei um manipulador de eventos OnGetPassword, definindo o parâmetro Password como 'password' nos dois lados também. (Qual é o papel dessa senha? É fundamental para a privacidade da comunicação? E se for encontrada através da análise / engenharia reversa do arquivo binário?)

Finalmente, no manipulador de eventos OnConnect do servidor, defino a propriedade TIdSSLIOHandlerSocketBase (AContext.Connection.IOHandler) .PassThrough como false.

Mas e as 3 propriedades do certificado SSLOptions? - CertFile - KeyFile - RootCertFile

Como gerá-los e implantá-los nos meus dispositivos de destino para executar minha camada SSL no cliente e no servidor?

Além disso, há algo especial a ser levado em consideração se pretender implantar posteriormente meu servidor e / ou clientes no dispositivo móvel IOS ou Android.

Estou ciente de que tenho pouco conhecimento sobre este tópico SSL. Desculpe se eu perguntar algo trivial. Qualquer documentação básica que explique todas essas coisas complicadas para um novato seria muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion