Saludos amigos, el otro día os mostré cómo desplegar FreeNAS 11.x sobre un entorno vSphere, que perfectamente se puede reproducir en Hyper-V, o en cualquier otro Hypervisor o físico, o en Cloud.
Una de las cosas más importantes en este tipo de casos, es contar con seguridad cuando activamos servicios de compartir espacio, ya sea FTP, Object Storage, etc. Por eso hoy, vamos a ver cómo desplegar un Certificado SSL de Let’s Encrypt sobre FreeNAS 11.x.
Conexión por SSH a nuestro FreeNAS 11.x
El primero paso será poder acceder por SSH a nuestro FreeNAS, para ello nos iremos hasta la parte de servicios, y en SSH, haremos click en Actions para editar las opciones:
Varias opciones aquí, la más importante en mi caso es permitir el login de root, ya que no tengo más usuarios:
Una vez tenemos la configuración como deseamos, habilitaremos el servicio y le diremos además que se arranque automáticamente, si queremos acceder a menudo por SSH, no recomendado realmente: 
Instalación de los paquetes de Let’s Encrypt y solicitar nuestro certificado SSL
Una vez estamos conectados por SSH, descargaremos el paquete de acme, que nos permite automatizar las llamadas a Let’s Encrypt:
curl https://get.acme.sh | sh
Además, haremos una descarga del siguiente repositorio de GitHub que contiene el script que nos permite realizar esto de manera automática, gracias a Danb35:
git clone https://github.com/danb35/deploy-freenas
Una vez descargado todo, tendremos que editar el fichero llamado deploy_config.example y renombrarlo a deploy_config, al documento habrá que añadir nuestra password, y ese será el único cambio que haremos
cp /root/deploy-freenas/deploy_config.example /root/deploy-freenas/deploy_config nano /root/deploy-freenas/deploy_config
Ahora que tenemos casi todo listo, volveremos a la carpeta principal de root y lanzaremos los siguientes comandos, en mi caso estoy usando CloudFlare para mi dominio, con lo que podemos obtener un certificado SSL de manera muy sencilla usando la autenticación por DNS, que este script hace de manera automática, tendremos que conocer nuestro FQDN para nuestro FreeNAS, en mi caso freenas.jorgedelacruz.es:
cd /root bash export CF_Key="NUESTRAKEYDECLOUDFLARE" export CF_Email="[email protected]" # La direccion email que usamos en CloudFlare .acme.sh/acme.sh --issue -d ELFQDNDETUFREENAS --dns dns_cf --reloadcmd "/root/deploy-freenas/deploy_freenas.py"
Para conocer vuestra Key de Cloudflare, aquí donde podéis encontrarlo:
Una vez lanzamos este comando con todo bien, podremos ver un resultado similar a éste:
[Sat Aug 3 09:44:15 PDT 2019] Create account key ok.
[Sat Aug 3 09:44:15 PDT 2019] Registering account
[Sat Aug 3 09:44:16 PDT 2019] Registered
[Sat Aug 3 09:44:17 PDT 2019] ACCOUNT_THUMBPRINT='uYM'
[Sat Aug 3 09:44:17 PDT 2019] Creating domain key
[Sat Aug 3 09:44:17 PDT 2019] The domain key is here: /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.key
[Sat Aug 3 09:44:17 PDT 2019] Single domain='freenas.jorgedelacruz.es'
[Sat Aug 3 09:44:17 PDT 2019] Getting domain auth token for each domain
[Sat Aug 3 09:44:17 PDT 2019] Getting webroot for domain='freenas.jorgedelacruz.es'
[Sat Aug 3 09:44:18 PDT 2019] Adding txt value: gr-ctRr for domain: _acme-challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:19 PDT 2019] Adding record
[Sat Aug 3 09:44:20 PDT 2019] Added, OK
[Sat Aug 3 09:44:20 PDT 2019] The txt record is added: Success.
[Sat Aug 3 09:44:20 PDT 2019] Let's check each dns records now. Sleep 20 seconds first.
[1;31;32m0[0m
[Sat Aug 3 09:44:42 PDT 2019] Checking freenas.jorgedelacruz.es for _acme-challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:42 PDT 2019] Domain freenas.jorgedelacruz.es '_acme-challenge.freenas.jorgedelacruz.es' success.
[Sat Aug 3 09:44:42 PDT 2019] All success, let's return
[Sat Aug 3 09:44:42 PDT 2019] Verifying: freenas.jorgedelacruz.es
[Sat Aug 3 09:44:45 PDT 2019] [1;31;32mSuccess[0m
[Sat Aug 3 09:44:45 PDT 2019] Removing DNS records.
[Sat Aug 3 09:44:45 PDT 2019] Removing txt: gr-ctRr for domain: _acme-challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:46 PDT 2019] Removed: Success
[Sat Aug 3 09:44:46 PDT 2019] Verify finished, start to sign.
[Sat Aug 3 09:44:46 PDT 2019] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/6270/8308
[Sat Aug 3 09:44:48 PDT 2019] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/0311
[Sat Aug 3 09:44:49 PDT 2019] [1;31;32mCert success.[0m
-----BEGIN CERTIFICATE-----
MIIFaDCCBFCgAwIBAgISAxHnDytpXEcvMstuUfbEFWbEMA0GCSqGSIb3DQEBCwUA
ME...
qzyM8YsqdEMSRMkUsPc1WH9gGzyWb1y8L8hzPajy9KZtKe9GwyFWtvpWwUo=
-----END CERTIFICATE-----
[Sat Aug 3 09:44:49 PDT 2019] Your cert is in /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.cer
[Sat Aug 3 09:44:49 PDT 2019] Your cert key is in /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.key
[Sat Aug 3 09:44:49 PDT 2019] The intermediate CA cert is in /root/.acme.sh/freenas.jorgedelacruz.es/ca.cer
[Sat Aug 3 09:44:49 PDT 2019] And the full chain certs is there: /root/.acme.sh/freenas.jorgedelacruz.es/fullchain.cer
[Sat Aug 3 09:44:49 PDT 2019] Run reload cmd: /root/deploy-freenas/deploy_freenas.py
Certificate import successful
Certificate list successful
Setting active certificate successful
[Sat Aug 3 09:44:51 PDT 2019]
[1;31;32m Reload success
Vemos como el script se ha encargado de todo, desde crear la entrada de DNS, hasta hacer la petición a Let’s Encrypt, descargar el SSL, e incluirlo en las rutas para que FreeNAS lo vea.
Cambiar la interfaz de FreeNAS 11.x para que sea accesible solo desde HTTPS
Nos iremos por HTTP y FQDN o IP a nuestro FreeNAS, hasta System – General, y cambiaremos la interfaz a HTTPS y seleccionaremos el Certificado SSL de Let’s Encrypt:
Una vez hayamos guardado los cambios, accederemos por HTTPS://TUNOMBREDEFREENAS.TUDOMINIO.COM y ya podremos ver el ansiado candadito verde, si exploramos podemos ver que es un certificado SSL válido:
Si queremos ver los detalles, aquí podremos ver el FQDN que yo uso con mi SSL válido.
¡Felicidades! Ya tenemos todo listo y de manera segura para empezar a ofrecer servicios NAS de manera segura, espero os sirva.
Os dejo el menú entero con las entradas sobre FreeNAS:
- FreeNAS: Instalación y configuración inicial de FreeNAS 11.x como VM dentro de vSphere
- FreeNAS: Cómo desplegar un Certificado SSL de Let’s Encrypt en FreeNAS 11.x y configuración HTTPS
- FreeNAS: Habilitar y configurar Object Storage en FreeNAS 11.x compatible con las API de S3 – Basado en MinIO
- FreeNAS: Configuración de Veeam Backup Repository Object Storage conectado a FreeNAS (MinIO) y lanzar Capacity Tier

Se puede hacer con NoIP (https://my.noip.com/) ??????
Siempre que puedas al final probar que ese dominio es tuyo, si. Yo por ejemplo tengo un letsencrypt usando noip, tengo que publicar el puerto 80 para ello 🙂