buscando un simple ejemplo de ssl erlang
gen-tcp (2)
Aquí está la guía de usuario para la aplicación SSL de Erlang : Erlang - Guía del usuario de SSL
La guía contiene también, en el capítulo API, un párrafo sobre la actualización de las conexiones existentes a SSL.
En cuanto a tu código, deberías hacer algo como:
- en el lado del servidor y del cliente tiene que emitir:
ssl:start()
lado del servidor: handshake SSL (recuerde configurar ''activo'' en falso para el socket de escucha)
{ok, SSLSocket} = ssl:ssl_accept(Socket, [{cacertfile, "cacerts.pem"}, {certfile, "cert.pem"}, {keyfile, "key.pem"}]).
donde "cacerts.pem", "cert.pem", "key.pem" son archivos relacionados con la certificación SSL
lado del cliente: actualice la conexión a SSL:
{ok, SSLSocket} = ssl:connect(Socket, [{cacertfile, "cacerts.pem"}, {certfile, "cert.pem"}, {keyfile, "key.pem"}], infinity).
Según la documentación, ahora SSLSocket es un canal ssl que se puede usar para enviar mensajes como: ssl:send(SSLSocket, "foo").
¡Espero que esto ayude!
en el libro "Programación Erlang", uno de los ejercicios propuestos fue imprimir en pantalla la solicitud proveniente de un navegador usando gen_tcp. Lo hice para las solicitudes http de la siguiente manera:
-module(tcp).
-export([server/0, wait_connect/2]).
server() ->
{ok, ListenSocket} = gen_tcp:listen(1234, [binary, {active, false}]),
wait_connect(ListenSocket,0).
wait_connect(ListenSocket, Count) ->
{ok, Socket} = gen_tcp:accept(ListenSocket),
spawn(?MODULE, wait_connect, [ListenSocket, Count+1]),
get_request(Socket, [], Count).
get_request(Socket, BinaryList, Count) ->
Request = gen_tcp:recv(Socket, 0),
io:format("~p~n", [Request]).
Ahora me pregunto cómo se puede hacer esto en caso de solicitud de https.
¿Puedes dar un ejemplo muy simple? o apuntarme a algún recurso en libros o en línea?
Gracias de hecho
Sugeriría leer el siguiente artículo sobre sockets SSL en Erang que contiene el código completo del servidor de eco SSL y el cliente.