Auto configure HTTPS with Let's Encrypt on AWS
Edit nginx configuration file
By default, our nginx configuration file ensure all domain names will match with our passbolt virtual machine but to obtain a valid Let’s Encrypt SSL certificate, you will have to manually set your passbolt domain name.
/etc/nginx/sites-enabled/nginx-passbolt.conf and search for this line:
Replace the underscore with your passbolt domain name:
Execute this command:
sudo dpkg-reconfigure passbolt-ce-server
You most likely want to say ‘NO’ to the mariadb/mysql setup question and go for the nginx setup
Passbolt debian and ubuntu packages currently supports the configuration of nginx. It comes with a default configuration that supports:
- Serve passbolt on port 80 (http)
- Serve passbolt on port 443 (https)
The following steps will guide you through the option that uses Let’s encrypt method to enable SSL.
After choosing yes you will be prompted with the following dialog where you can choose which method you prefer to configure SSL on nginx:
You will now need to introduce the name of the domain name assinged to your server:
Finally you will need to provide an email address for Let’s encrypt to notify you for renewals and other admin info:
If everything goes fine you should see a final message that points you to finish passbolt configuration:
Reload nginx after finish the reconfigure to use the SSL configuration.
sudo systemctl reload nginx
Finally, ensure ‘fullBaseUrl’ value in /etc/passbolt/passbolt.php starts with https://.
And that’s it you should be able to reach your server on the domain you specified.
This article was last updated on March 29th, 2022.