0% encontró este documento útil (0 votos)
5 vistas9 páginas

Guía para Implementar SSL en Aplicaciones

El documento detalla el proceso de implementación de SSL para aplicaciones, enfatizando la importancia de los certificados y dominios. Se recomienda el uso de DuckDNS para dominios gratuitos y Certbot para la generación de certificados, proporcionando instrucciones específicas para su configuración. Además, se abordan aspectos técnicos necesarios para la integración de SSL en el código y la configuración del firewall para permitir el acceso externo.

Cargado por

Mauricio Lucero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas9 páginas

Guía para Implementar SSL en Aplicaciones

El documento detalla el proceso de implementación de SSL para aplicaciones, enfatizando la importancia de los certificados y dominios. Se recomienda el uso de DuckDNS para dominios gratuitos y Certbot para la generación de certificados, proporcionando instrucciones específicas para su configuración. Además, se abordan aspectos técnicos necesarios para la integración de SSL en el código y la configuración del firewall para permitir el acceso externo.

Cargado por

Mauricio Lucero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

SSL – Puesta en marcha

Autor: Carles
Aubia
Fecha:
27/02/2023

Quizás sea este el último tema a tocar, pues entiendo yo que se ha de


aplicar cuando ya tienes una aplicación lista para la puesta en marcha y
en producción.

Es algo que tenia aparcado por lo comentado y por que no puedes


poner un ejemplo operativo, ya que cada uno de ellos necesita su
propio certificado que va ligado al servidor y la máquina donde lo uses.

Añadir que no es que sea complicado pero para la generación de un


certificado intervienen varios factores desde dominios, routers, ip, … y
puede ser un poco engorroso. Y si a esto le añadimos la parametrización
del firewall, la codificación a tener en cuenta, etc,…. Puede ser un poco
costoso al principio, pero solo se trata de tener en cuenta todos estos
conceptos.

Siempre comento que este es el último paso a hacer en algun proyecto


nuestro. Es bueno hacer pruebas y ver que somos capaces y podemos
llegar a este stage, pero para programar la aplicación, sin el SSL es todo
mas fácil. Al final el concepto es licenciar un proyecto y prepararlo para
que salga de nuestra casa.

Siguiendo la linea del proyecto enfocado en clave Harbour, quiero


seguir haciendo las cosas lo mas fácil posible para el usuario,
intentando aparcar conceptos y temas técnicos para quien mas lo
necesite o quiera inmiscuirse.

Existe mucha literatura que explica muy entendible lo que es el SSL y


por lo que he visto no tendreis problemas en encontrar información
fiable y buena.

Básicamente para entenderlo, cuando vemos en la url https:// y un


candado sabemos que esa url está protegida. Esta protección se basa en
un cifrado de punta a punta (server-cliente) y su contenido es inteligible
si sniffan la transmision, todo está encriptado.
Asi pues resulta comprensible que nuestras aplicaciones necesiten si o
si estos certificados para poder ofrecer garantias a nuestros usuarios.

Dominio

Para nuestra aplicación necesitaremos tambien un dominio. Siguiendo


la linea vamos a usar un servido gratuito para crear nuestros dominios.
Después de probar unos pocos y hablándolo con programadores que
utilizan estos tipos de servicios, me decanto al final
por [Link] por su extrema facilidad de gestionar el
dominio a parte que podemos ir renovándolo de muchas maneras
incluso desde nuestro propio programa en harbour

Para la siguiente prueba creo un domino p.e à [Link]

Certificado

Despues de mirar varias maneras de realizarlo y para hacerlo de una


forma lo mas fácil posible para tener un punto de entrada y poder
experimentar, me decanto por usar certbot

[Link]

Sencillamente porque es muy fácil crear un certificado que nos sirva. Os


aconsejo que os mireis la página, pero a modo resumen os explico como
podeis crear un certificado para windows.

1.- Bajaros el software para crear el certificado


de [Link]
2.- Ejecutar el cmd como administrador

3.- Ejecutamos el siguiente comando:

C:\WINDOWS\system32> certbot certonly –-standalone

Importante: Tener el puerto 80 para tu máquina, abriendo puerto de tu


router

El sistema instala el certificado en este caso en à C:\Certbot\live\


[Link]\

Y eso es todo para crear un certificado. Podeis usar otras herramientas


y experimentar de varias maneras, pero creo que esta es la forma mas
fácil para empezar con vuestra aplicación.
Copiaremos en el directorio raiz de nuestra aplicación:

- [Link] à [Link]
- [Link] à [Link]

App web con Uhttpd2

A continuación se detalla lo que debemos tener en cuenta en nuestra


aplicación para que funcione con SSL

Código

Cuando creemos el servidor en nuestro código, deberemos tener en


cuenta 3 cosas

Acción Código
Indicar el puerto 443 oServer:SetPort( 443 )
Indicar el nombre del certificado y oServer:SetCertificate( <[Link]>,
del fichero de clave privada <[Link]> )
Indicar que la aplicación usara SSL oServer:SetSSL( .T. )

Compilado / Enlazado

Para usar aplicaciones con HTTPS necesitaremos tener estas 2 dll en la


carpeta de nuestra aplicación y las podeis encontrar en la carpeta dll.

- libcrypto-1_1-[Link]
- libssl-1_1-[Link]

Esto implica que el exe las necesitará para poder SSL. Si faltase una nos
daria error.

En el fichero hbp deberemos especificar que use las librerias SSL

-luhttpds2
-lhbssl
-lhbssls
-llibcrypto-1_1-x64
-llibssl-1_1-x64
Observad que la libreria uhttpd pasa a ser la uhttpds2 que es la versión
para compilar y usar SSL

En un ejemplo básico el fichero hbp seria el siguiente

-n
-w1
-es2
-inc
-head=full
-mt

app\[Link]
app\web_basic.prg

-Llib
-luhttpds2

-lhbssl
-lhbssls
-llibcrypto-1_1-x64
-llibssl-1_1-x64

# WAPI_OutputDebugString()
[Link]
[Link]

Test en localhost

Una vez enlazado podemos probar nuestro servidor poniendo en la url

[Link]

Si se ejecuta es que el server se ha ejecutado correctamente.

Test en Internet

Para poder acceder desde internet:

- Debemos abrir el puerto de nuestro router 443 a nuestra


máquina

- Habilitar en nuestro firewall permisos para que esta aplicación


pueda tener paso desde fuera a nuestra máquina
En el caso de que queremos ejecutar el server que tengamos ubicado
en c:\uhttpd2\samples\20-SSL\[Link] podremos definir el firewall de
esta manera.
Se habrá creado una regla de entrada en nuestro firewall
Una vez abierto desde cualquier máquina o nuestro móvil (probadlo con
datos, no con vuestra wifi) especificais vuestro dominio:

[Link]

Si pulsamos en el candado podremos ver que es un certificado válido y


que nuestra aplicación se ejecuta correctamente en SSL.
Y si todo está correcto, esto deberia ser todo lo mínimo necesario para
poder tener nuestras aplicaciones con certificado SSL.

También podría gustarte