En este post te voy a enseñar cómo usar un certificado SSL previamente configurado con Apache para usarlo en un programa de Go. El sitio web de un cliente tenía un servidor con Apache y Let’s encrypt, pero quería que una aplicación de Golang (que escucha en un puerto distinto) usara ese mismo certificado.
Por ello es que hoy vamos a ver cómo reutilizar ese mismo certificado que ya funciona con Apache pero que también queremos usar en otro puerto en una aplicación distinta, sin proxy.
Necesitamos la ubicación de fullchain.pem y privkey.pem, que normalmente están ubicados en /etc/letsencrypt/live/tusitio.com/. Recomiendo navegar a ese directorio y verificar que la ruta es correcta, ajustando la cadena a tu dominio.
Puede que al llegar a ese directorio notes que son enlaces simbólicos; esto es totalmente normal.
Si el certificado SSL ya funciona con Apache, no tienes que mover ninguna otra cosa; ya que la app de Golang va a escuchar en otro puerto y no existirá ninguna interferencia.
Ahora que has localizado el certificado, debes modificar tu app de Go. En mi caso anteriormente se veía así sin certificado:
servidor := &http.Server{
Handler: enrutador,
Addr: ":8888",
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
fmt.Printf("Servidor iniciado en http://localhost%s", PuertoServidor)
log.Fatal(servidor.ListenAndServe())
Y ahora se ve así:
servidor := &http.Server{
Handler: enrutador,
Addr: ":8888",
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
fmt.Printf("Servidor iniciado en http://localhost%s", PuertoServidor)
log.Fatal(servidor.ListenAndServeTLS("/etc/letsencrypt/live/tusitio.com/fullchain.pem", "/etc/letsencrypt/live/tusitio.com/privkey.pem"))
Con eso debería funcionar sin problemas. Ahora puedes acceder a https://tusitio.com para tu sitio normal con Apache, y a https://tusitio.com:8888 para tu aplicación con Golang; ambos usando el mismo certificado de Let’s encrypt.
Solo no te olvides de darle a tu app los permisos necesarios, tanto en la lectura de archivos como en el firewall.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.