Checklist
I have read intro post: About the Installation Issues category
I have read the tutorials, help and searched for similar issues
I provide relevant information about my server (component names and versions, etc.)
I provide a copy of my logs and healthcheck
I describe the steps I have taken to trouble shoot the problem
I describe the steps on how to reproduce the issue
Hi everyone,
I’m running Passbolt in a docker swarm and there are some issues I can’t resolve. I have read a lot of tutorials and topics but I can’t find anything to solve my problems.
Passbolt can’t send emails, nothing in this article solve that. ( Why are my emails not being sent? | Passbolt documentation.)
Troubleshooting the installation I’ve realized there are some errors and I guess this is why mail system doesn’t work. This is the healthcheck result, sorry, it’s in spanish buy I think you can understand which points are failing.
-------------------------------------------------------------------------------
Healthcheck shell.....
-------------------------------------------------------------------------------
Entorno
[PASS] Versión de PHP 8.2.20.
[PASS] La versión de PHP es 8.1 o superior.
[PASS] PCRE compilado con soporte Unicode.
[PASS] La extensión Mbstring está instalada.
[PASS] La extensión Intl está instalada.
[PASS] La extensión GD o Imagick está instalada.
[PASS] El directorio temporal y su contenido tienen permisos de escritura y no son ejecutables.
[PASS] El directorio de logs y su contenido tienen permisos de escritura.
Archivos de configuración
[PASS] El archivo de configuración de la aplicación está presente
[WARN] Falta el archivo de configuración de Passbolt en /etc/passbolt/
[HELP] Copiar /etc/passbolt/passbolt.default.php a /etc/passbolt/passbolt.php
[HELP] El archivo de configuración de Passbolt no es necesario si Passbolt está configurado con variables de entorno
Configuración del núcleo
[PASS] La caché está funcionando.
[PASS] Modo de depuración desactivado.
[PASS] Valor único establecido para security.salt
[PASS] La URL base completa se ha establecido a https://bolt.montserrat.es
[PASS] Validación de App.fullBaseUrl OK.
[PASS] /healthcheck/status es accesible.
Certificado SSL
[PASS] El certificado de pares SSL valida.
[PASS] El nombre de host coincide con el certificado SSL.
[PASS] No se utiliza un certificado autofirmado.
Configuración SMTP
[PASS] El plugin SMTP Settings está activado.
[FAIL] Error en la configuración SMTP: App\Utility\OpenPGP\Backends\Gnupg::setDecryptKeyFromFingerprint(): Argument #1 ($fingerprint) must be of type string, null given, called in /usr/share/php/passbolt/plugins/PassboltCe/SmtpSettings/src/Service/SmtpSettingsGetSettingsInDbService.php on line 109
[WARN] El origen de los ajustes SMTP es: sin definir.
[HELP] Se recomienda establecer la configuración SMTP en la base de datos a través de la sección de administración.
[WARN] Los endpoints del plugin SMTP Settings están activados.
[HELP] Se recomienda desactivar los endpoints del plugin.
[HELP] Establezca la variable de entorno PASSBOLT_SECURITY_SMTP_SETTINGS_ENDPOINTS_DISABLED a true.
[HELP] O establezca passbolt.security.smtpSettings.endpointsDisabled a true en /etc/passbolt/passbolt.php.
[PASS] Ninguna configuración SSL personalizada para el servidor SMTP.
Autenticación JWT
[PASS] El plugin JWT Authentication está activado.
[FAIL] El directorio /etc/passbolt/jwt/ no debería tener permisos de escritura.
[HELP] You can try:
[HELP] sudo chown -Rf root:www-data /etc/passbolt/jwt/
[HELP] sudo chmod 750 /etc/passbolt/jwt/
[HELP] sudo chmod 640 /etc/passbolt/jwt/jwt.key
[HELP] sudo chmod 640 /etc/passbolt/jwt/jwt.pem
[PASS] Se ha encontrado un par de claves JWT válido.
Configuración GPG
[PASS] El módulo PHP GPG está instalado y cargado.
[PASS] La variable de entorno GNUPGHOME está configurada a /var/lib/passbolt/.gnupg.
[PASS] El directorio /var/lib/passbolt/.gnupg que contiene el llavero tiene permisos de escritura para el usuario del servidor web.
[FAIL] La clave OpenPGP del servidor no está configurada.
[HELP] Cree una clave, expórterla y añada la huella digital a /etc/passbolt/passbolt.php
[HELP] Vea https://www.passbolt.com/help/tech/install#toc_gpg
[PASS] El archivo de clave pública está definido en /etc/passbolt/passbolt.php y es legible.
[PASS] El archivo de la clave privada está definido en /etc/passbolt/passbolt.php y es legible.
[FAIL] La huella digital de la clave del servidor no coincide con la definida en /etc/passbolt/passbolt.php.
[HELP] Compruebe la huella digital de la clave, ejemplo:
[HELP] sudo su -s /bin/bash -c "gpg --list-keys --fingerprint --home /var/lib/passbolt/.gnupg" www-data | grep -i -B 2 'SERVER_KEY_EMAIL'
[HELP] SERVER_KEY_EMAIL: El correo electrónico que utilizó cuando generó la clave del servidor.
[HELP] Vea https://www.passbolt.com/help/tech/install#toc_gpg
[FAIL] La clave pública del servidor definida en /etc/passbolt/passbolt.php (o en las variables de entorno) no está en el anillo de claves
[HELP] Importe la clave privada del servidor en el anillo de claves del usuario del servidor web.
[HELP] puedes probar:
[HELP] sudo su -s /bin/bash -c "gpg --home /var/lib/passbolt/.gnupg --import /etc/passbolt/gpg/serverkey_private.asc" www-data
[FAIL] La clave del servidor no tiene un identificador de correo electrónico válido.
[HELP] Edit or generate another key with a valid email id.
[FAIL] La clave privada no se puede utilizar para descifrar un mensaje
[FAIL] La clave privada no puede utilizarse para descifrar y verificar un mensaje
[FAIL] La clave pública no puede utilizarse para verificar una firma.
Configuración de la aplicación
[PASS] Usando la última versión de Passbolt (4.9.1).
[FAIL] Passbolt no está configurado para forzar el uso del SSL.
[HELP] Establezca passbolt.ssl.force a true en /etc/passbolt/passbolt.php.
[PASS] App.fullBaseUrl está configurado en HTTPS.
[PASS] Los endpoints de la API de Selenium están desactivados.
[PASS] Se le indica a los robots del motor de búsqueda que no indexen el contenido.
[INFO] El plugin del auto-registro está activado.
[INFO] El registro está cerrado, sólo los administradores pueden añadir usuarios.
[PASS] La configuración pública de auto-registro obsoleta no se encontró en /etc/passbolt/passbolt.php.
[WARN] La comprobación de disponibilidad del host está desactivada.
[HELP] Asegúrese de que esta instancia no esté disponible públicamente en Internet.
[HELP] O establezca la variable de entorno PASSBOLT_EMAIL_VALIDATE_MX a true.
[HELP] O establezca passbolt.email.validate.mx a true en /etc/passbolt/passbolt.php.
[PASS] Usando la versión compilada de la aplicación JavaScript.
[WARN] Algunas notificaciones de correo electrónico están desactivadas por el administrador.
[PASS] El esquema de base de datos está actualizado.
Base de datos
[PASS] La aplicación es capaz de conectarse a la base de datos
[PASS] 31 tablas encontradas.
[PASS] Algunos contenidos por defecto están presentes.
[FAIL] 10 error(s) found. Hang in there!
The important line for me is this one:
[WARN] El origen de los ajustes SMTP es: sin definir.
I’m using environment variables configuration to start the system and I guess it’s saved in the database when I make anty change. I can see the config in the admin webpage, but I don’t know if it’s applying the changes I’m making. For example, if I change the locale in the admin page, nothing happens.
Continuing with the errors.
If we read the SMTP Config error:
Error en la configuración SMTP: App\Utility\OpenPGP\Backends\Gnupg::setDecryptKeyFromFingerprint(): Argument #1 ($fingerprint) must be of type string, null given, called in /usr/share/php/passbolt/plugins/PassboltCe/SmtpSettings/src/Service/SmtpSettingsGetSettingsInDbService.php on line 109
This error is because the fingerprint variable is null and I think it’s related with the GPG config errors:
[FAIL] La clave OpenPGP del servidor no está configurada.
Let’s analyze this erros:
[FAIL] La clave pública del servidor definida en /etc/passbolt/passbolt.php (o en las variables de entorno) no está en el anillo de claves
[HELP] Importe la clave privada del servidor en el anillo de claves del usuario del servidor web.
[HELP] puedes probar:
[HELP] sudo su -s /bin/bash -c "gpg --home /var/lib/passbolt/.gnupg --import /etc/passbolt/gpg/serverkey_private.asc" www-data
[FAIL] La clave del servidor no tiene un identificador de correo electrónico válido.
[HELP] Edit or generate another key with a valid email id.
[FAIL] La clave privada no se puede utilizar para descifrar un mensaje
[FAIL] La clave privada no puede utilizarse para descifrar y verificar un mensaje
[FAIL] La clave pública no puede utilizarse para verificar una firma.
There is no /etc/passbolt/passbolt.php file, it’s all in the environment variables. It’s only the passbolt.default.php file.
When I list the keyrings, I’m able to see them, but the server email isn’t correct and I don’t know how to change it.
Maybe this the original errors, I don’t know…
www-data@975cdf15b0f1:/usr/share/php/passbolt$ gpg --list-keys
/var/lib/passbolt/.gnupg/pubring.kbx
------------------------------------
pub rsa3072 2024-09-12 [SC]
16816xxxxxxxxxxxxxxxxxxxx8A7486211xxxxxx
uid [ultimate] Passbolt default user <passbolt@yourdomain.com>
sub rsa3072 2024-09-12 [E]
pub rsa3072 2024-09-12 [SC]
CC7372xxxxxxxxxxxxxxxxxxxxCC62C806xxxxxx
uid [ unknown] Fernando Surname<fer*****@**********.es>
sub rsa3072 2024-09-12 [E]
I haven’t found how to change the email or how to set it in an environment variable.
I’ve running other passbolt intallations with docker and I didn’t have this problems. Maybe it’s the swarm?
I’m in a dead end.
Thanks for your time.
Kind Regards,