All articles

How to Secure Your Passbolt Instance with an SSL Certificate on Windows

6 min. read

Passbolt team

Passbolt team

24 February, 2025

Introduction

What you will need?

  • Windows client machine with administrator privileges.
    • Microsoft Management Console (MMC)
  • sudo accesses to the passbolt server.
  • Some tools required:
    • OpenSSL
    • SCP/SFTP client (e.g., scp, FileZilla)

What is an SSL Certificate?

What are the benefits of using an SSL certificate for your passbolt instance?

  • Encrypts sensitive data in transit - One of the main benefits of using an SSL certificate is protecting data. It encrypts passwords and sensitive information in transit. Even if a hacker tries to intercept data, they’ll only see garbled, unreadable text, making it impossible to extract useful information.
  • Prevents Browser security warning - Modern browsers warn users when they try to visit a site that doesn’t have SSL enabled. This can create trust issues for teams using passbolt. With SSL, the browser will display a padlock icon in the address bar, signaling a secure and trusted connection.
  • Protect against MITM attacks - A Man-in-the-Middle (MITM) attack occurs when a hacker intercepts communication between two parties to steal or alter the data being exchanged. With SSL, your passbolt instance is protected from these attacks because the certificate ensures that users are connecting to the real server—not a malicious imitation.

Generating an SSL Certificate on Windows

Step 1: Open PowerShell as Administrator

  • Click Start, type PowerShell, then right-click and select "Run as administrator".

Step 2: Create an information file with the certificate request details

[NewRequest]
Subject = "CN=passbolt.local, O=Passbolt SA, L=Esch-Sur-Alzette, ST=Esch-Sur-Alzette, C=LU"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
RequestType = PKCS10
  • Subject
    • This provides the Distinguished Name (DN) that uniquely identifies the entity for which the certificate is being requested.
  • KeySpec
    • It specifies the type of key to create. 1 typically indicates an exchange key, which is used for encrypting session keys. This value is often used for SSL/TLS certificates.
  • KeyLength
    • It defines the length of the key in bits. 2048 bits is a standard length that provides a good balance between security and performance.
  • Exportable
    • Indicates whether the private key can be exported. Setting this to TRUE allows you to export the key if needed, for example, to transfer it to another server or back it up.
  • MachineKeySet
    • Specifies that the key should be associated with the machine rather than the user. This is important for server certificates that need to be accessible by the system.
  • RequestType
    • Specifies the request type. PKCS10 refers to the Public Key Cryptography Standards #10, which is a standard format for certificate signing requests.

Step 3: Generate a private key and certificate request

certreq -new request.inf request.req

Step 4: Submit the Certificate Request and Export the Certificate

certreq -submit request.req certificate.cer

Step 5: Convert the certificate to PEM format

certutil -encode certificate.cer certificate.pem

Step 6: Export the Private Key

  1. Open the Microsoft Management Console (MMC).
  2. Add the Certificates snap-in for the Local Computer account.
  3. Navigate to the Personal > Certificates store.
  4. Find the certificate issued from the request and export it along with the private key:
    1. Right-click the certificate, select All Tasks > Export.
    2. Follow the wizard to export the certificate and private key in PFX format.

Step 7: Convert the PFX File to PEM Format

openssl pkcs12 -in certificate.pfx -out certificate_and_key.pem -nodes
openssl pkey -in certificate_and_key.pem -out private.pem
openssl x509 -in certificate_and_key.pem -out certificate.pem

Configuring Passbolt to Use the SSL Certificate

OPTIONAL: Updating the CA certificates (If you're acting as your own CA)

sudo cp /path/to/ca-cert.pem /usr/local/share/ca-certificates/ca-cert.crt
sudo update-ca-certificates

Testing the configuration

Server-Side Test

openssl s_client -connect yourdomain.com:443

Client-Side Test

  1. Open your browser on the Windows machine and navigate to the fullBaseUrl.
  2. Ensure there are no SSL warnings and that the certificate is properly applied.

Installing the Certificate on Windows Machines

Step 1: Import the Root CA Certificate into the Trusted Store

  1. Open Microsoft Management Console (MMC).
  2. Add the certificates snap-in for the computer account.
  3. Import the root CA certificate into the "Trusted Root Certification Authorities" store.

Step 2: Import the Root CA Certificate

  1. Expand Trusted Root Certification Authorities.
  2. Right-click certificates and select Import.
  3. Select your CA certificate and complete the wizard.

Conclusion

Continue reading

Passbolt Clears Three Security and Compliance Audits

3 min. read

Passbolt Clears Three Security and Compliance Audits

This blog breaks down key findings from three independent assessments, reinforcing our commitment to strong security and compliance.

RB

Remy Bertot

4 March, 2025

Passbolt Raises $8M Series A led by Airbridge

6 min. read

Passbolt Raises $8M Series A led by Airbridge

Today marks an exciting milestone in Passbolt's journey. We're thrilled to announce our $8 million Series A funding round, led by Airbridge Equity Partners.

Kevin Muller

Kevin Muller

23 January, 2025

Flag of European UnionMade in Europe. Privacy by default.