Could not verify the server key. Server Internal Error. AWS

Hi,
I have set up passbolt through AWS AMIs (followed the instructions on the website).
Everything worked great for a few months. When I got back to work today after the weekend, I can’t load passbolt anymore (neither website, PC or mobile app).
I get this error:

I’m not 100% sure how to fix this? Thanks for any help!

Hello, can you try to run the healthcheck on your instance see if there is any information there?

____                  __          ____
/ __ \____  _____ ____/ /_  ____  / / /_

/ // / __ `/ / / __ / __ / / _/
/ / // ( |
) /
/ / /
/ / / /
/
/ _
,
/
//./_//__/

Open source password manager for teams

Healthcheck shell…


Environment

[PASS] PHP version 8.2.20.
[PASS] PHP version is 8.1 or above.
[PASS] PCRE compiled with unicode support.
[PASS] Mbstring extension is installed.
[PASS] Intl extension is installed.
[PASS] GD or Imagick extension is installed.
[PASS] The temporary directory and its content are writable and not executable.
[PASS] The logs directory and its content are writable.

Config files

[PASS] The application config file is present
[PASS] The passbolt config file is present

Core config

[PASS] Cache is working.
[PASS] Debug mode is off.
[PASS] Unique value set for security.salt
[PASS] Full base url is set to https://xxx
[PASS] App.fullBaseUrl validation OK.
[FAIL] Could not reach the /healthcheck/status with the url specified in App.fullBaseUrl
[HELP] Check that the domain name is correct in /etc/passbolt/passbolt.php
[HELP] Check the network settings

SSL Certificate

[WARN] SSL peer certificate does not validate.
[WARN] Hostname does not match when validating certificates.
[WARN] Using a self-signed certificate.

SMTP settings

[PASS] The SMTP Settings plugin is enabled.
[PASS] SMTP Settings coherent. You may send a test email to validate them.
[PASS] The SMTP Settings source is: database.
[WARN] The SMTP Settings plugin endpoints are enabled.
[HELP] It is recommended to disable the plugin endpoints.
[HELP] Set the PASSBOLT_SECURITY_SMTP_SETTINGS_ENDPOINTS_DISABLED environment variable to true.
[HELP] Or set passbolt.security.smtpSettings.endpointsDisabled to true in /etc/passbolt/passbolt.php.

JWT Authentication

[PASS] The JWT Authentication plugin is enabled.
[FAIL] The /etc/passbolt/jwt/ directory should not be writable.
[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] A valid JWT key pair was found.

GPG Configuration

[PASS] PHP GPG Module is installed and loaded.
[PASS] The environment variable GNUPGHOME is set to /var/lib/passbolt/.gnupg.
[PASS] The directory /var/lib/passbolt/.gnupg containing the keyring is writable by the webserver user.
[PASS] The server OpenPGP key is not the default one.
[PASS] The public key file is defined in /etc/passbolt/passbolt.php and readable.
[PASS] The private key file is defined in /etc/passbolt/passbolt.php and readable.
[PASS] The server key fingerprint matches the one defined in /etc/passbolt/passbolt.php.
[PASS] The server public key defined in the /etc/passbolt/passbolt.php (or environment variables) is in the keyring.
[PASS] There is a valid email id defined for the server key.
[PASS] The public key can be used to encrypt a message.
[PASS] The private key can be used to sign a message.
[PASS] The public and private keys can be used to encrypt and sign a message.
[PASS] The private key can be used to decrypt a message.
[PASS] The private key can be used to decrypt and verify a message.
[PASS] The public key can be used to verify a signature.
[PASS] The server public key format is Gopengpg compatible.
[PASS] The server private key format is Gopengpg compatible.

Application configuration

[FAIL] This installation is not up to date. Currently using 4.7.0 and it should be 4.8.0.
[HELP] See Update | Passbolt documentation.
[PASS] Passbolt is configured to force SSL use.
[PASS] App.fullBaseUrl is set to HTTPS.
[PASS] Selenium API endpoints are disabled.
[PASS] Search engine robots are told not to index content.
[INFO] The Self Registration plugin is enabled.
[INFO] Registration is closed, only administrators can add users.
[PASS] The deprecated self registration public setting was not found in /etc/passbolt/passbolt.php.
[WARN] Host availability checking is disabled.
[HELP] Make sure this instance is not publicly available on the internet.
[HELP] Or set the PASSBOLT_EMAIL_VALIDATE_MX environment variable to true.
[HELP] Or set passbolt.email.validate.mx to true in /etc/passbolt/passbolt.php.
[PASS] Serving the compiled version of the javascript app.
[WARN] Some email notifications are disabled by the administrator.
[PASS] The database schema up to date.

Database

[PASS] The application is able to connect to the database
[PASS] 31 tables found.
[PASS] Some default content is present.

[FAIL] 3 error(s) found. Hang in there!

Healthcheck looks ok. Can you trigger an error and paste the last error logs from

2024-07-22 00:21:39 error: [Cake\Routing\Exception\MissingRouteException] A route matching “/.env” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: /.env
Client IP: 94.156.68.162
2024-07-22 05:54:08 error: [Cake\Routing\Exception\MissingRouteException] A route matching “/_profiler/phpinfo” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: /_profiler/phpinfo
Client IP: 94.156.68.162
2024-07-22 07:19:54 error: [Cake\Routing\Exception\MissingRouteException] A route matching “s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1]=Hello” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: s=/index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=md5&vars%5B1%5D%5B%5D=Hello?s=/index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=md5&vars%5B1%5D%5B%5D=Hello
Client IP: 178.18.242.163
2024-07-22 07:19:55 error: [Laminas\Diactoros\Exception\InvalidArgumentException] Invalid path provided; must not contain a query string in /usr/share/php/passbolt/vendor/longwave/laminas-diactoros/src/Uri.php on line 350
2024-07-22 07:19:55 error: [Cake\Error\FatalErrorException] Fatal Error: Uncaught Cake\Error\FatalErrorException: [Laminas\Diactoros\Exception\InvalidArgumentException] Invalid path provided; must not contain a query string (/usr/share/php/passbolt/vendor/longwave/laminas-diactoros/src/Uri.php:350) in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php:398
Stack trace:
#0 [internal function]: Cake\Error\ErrorTrap->handleError()
#1 /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php(398): trigger_error()
#2 /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php(252): Cake\Error\ExceptionTrap->logInternalError()
#3 [internal function]: Cake\Error\ExceptionTrap->handleException()
#4 {main}
thrown in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php on line 398
2024-07-22 07:19:56 error: [Cake\Routing\Exception\MissingRouteException] A route matching “lang=…/…/…/…/…/…/…/…/tmp/index1” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: lang=…/…/…/…/…/…/…/…/tmp/index1?lang=…/…/…/…/…/…/…/…/tmp/index1
Client IP: 178.18.242.163
2024-07-22 07:47:20 error: [Cake\Routing\Exception\MissingRouteException] A route matching “s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1]=Hello” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: s=/index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=md5&vars%5B1%5D%5B%5D=Hello?s=/index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=md5&vars%5B1%5D%5B%5D=Hello
Client IP: 177.11.6.54
2024-07-22 07:47:21 error: [Laminas\Diactoros\Exception\InvalidArgumentException] Invalid path provided; must not contain a query string in /usr/share/php/passbolt/vendor/longwave/laminas-diactoros/src/Uri.php on line 350
2024-07-22 07:47:21 error: [Cake\Error\FatalErrorException] Fatal Error: Uncaught Cake\Error\FatalErrorException: [Laminas\Diactoros\Exception\InvalidArgumentException] Invalid path provided; must not contain a query string (/usr/share/php/passbolt/vendor/longwave/laminas-diactoros/src/Uri.php:350) in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php:398
Stack trace:
#0 [internal function]: Cake\Error\ErrorTrap->handleError()
#1 /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php(398): trigger_error()
#2 /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php(252): Cake\Error\ExceptionTrap->logInternalError()
#3 [internal function]: Cake\Error\ExceptionTrap->handleException()
#4 {main}
thrown in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Error/ExceptionTrap.php on line 398
2024-07-22 07:47:21 error: [Cake\Routing\Exception\MissingRouteException] A route matching “lang=…/…/…/…/…/…/…/…/tmp/index1” could not be found. in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Routing/RouteCollection.php on line 248
Request URL: lang=…/…/…/…/…/…/…/…/tmp/index1?lang=…/…/…/…/…/…/…/…/tmp/index1
Client IP: 177.11.6.54

https://app.crowdsec.net/cti/94.156.68.162

Alll of these errors are related to malicious IP activity.
Can you isolate your error from the these log entries? Like using your client IP.

Otherwise can you check in the browser and find the request returning an error, then correlate that with what is in the logs.