SSL and Encryption
Using SSL Certificates to Secure Access to Incredibuild Components
When installing Incredibuild components (Coordinator or Agents), we recommend that you add your own SSL certificate in the installation wizard or during silent installation. If you are using Cloud machines, you upload your certificate in the Cloud Settings.
Note: If you do not upload your own certificates, Incredibuild uses a generic self-signed certificate to encrypt communication. However, this certificate is not trusted and may cause Chrome to issue a warning every time you access the Coordinator user interface. While you can ignore this warning every time, we recommend using your own certificate to improve security.
Important: In order to add or change certificates after installation, contact support@incredibuild.com.
Supported Formats
The following certificate and key formats are supported. Each certificate has it's own dedicated private key.
Item | Supported Formats |
---|---|
Certificate Types | X.509, PEM |
Certificate Extension | .pem, .crt |
Certificate Key Encoding Types | PKCS#1 |
Certificate Key Extension | .key |
Coordinator Certificate Validation
Incredibuild validates SSL certificates whenever communication is initiated between Incredibuild machines. When verifying a Coordinator certificate, we validate the following fields:
-
Common name (CN): We verify that this matches the name of the host PC exactly. Wildcard expressions cannot be used.
-
Certificate Authority (CA): The CA that signed the certificate.
-
Expiration date: We validate that the certificate is not expired.
-
Certificate Revocation List (CRL): If you are not using an OCSP, we verify that the certificate is not listed in the operating system's CRL.
-
Online Certificate Status Protocol (OCSP): If your certificate specifies an OCSP, we use that OCSP to verify that the certificate is not revoked. For the OCSP validation to work, the certificate must include the OCSP address, and Incredibuild must be able to communicate with that location (check your firewall).
Agent Certificate Validation
Incredibuild validates SSL certificates whenever communication is initiated between Incredibuild machines. When verifying the Agent certificate, we validate the following fields:
-
Common name (CN): We verify that this matches the name of the host PC. You can verify create a certificate with a wildcard value for the common name to use the same certificate for multiple agents (e.g. *.example.local). Additionally, you can use a regular expression for the verification after installation. For details, see below.
-
Certificate Authority (CA): The CA that signed the certificate.
-
Expiration date: We validate that the certificate is not expired.
-
Certificate Revocation List (CRL): We verify that the certificate is not listed in the operating system's CRL.
Validation Agent Names using Regular Expressions
You can use regular expression to validate the common name of your agents instead of directly checking the common name against the host PC name.
For example, if all of your machine names are of the form "Agent123" where 123 is a dynamic number, you can use a regular expression to define that pattern. Then any Agent whose name matches the regular expression will be verified during the certificate validation process.
Regular expressions must be less than 999 characters.
Examples:
Validate any name that ends in .rnd1.example.com:
[a-zA-Z]*[.-]?(rnd\d{1})[.-]?[a-zA-Z]*[.-]?[a-zA-Z]*
Validate any name that ends in rnd*.example.com. john.rnd12.example.com, dan.rnd3.example.com would be valid, while george.sales.example.com would be invalid.
[a-zA-Z]*[.-]?(rnd[0-9]*)[.-]?[a-zA-Z]*[.-]?[a-zA-Z]*
To use a regular expression for agent validation, go to the Coordinator Monitor > Coordinator Settings > General > Network area and add a valid regex.
Encrypting Communication
Whether or not you uploaded your own certificates, you can encrypt communication between Incredibuild's internal components. By default, communication is not encrypted as Incredibuild machines are often on the same environment. To encrypt communication, check the Encrypted communication box in the Coordinator Monitor >Coordinator Settings > General > Network area and specify a secured port to manage the communication.
Limitation: All communication with Backup Coordinators is not encrypted.