Secure GlobalForms with HTTPS so that sign-ins and form data are encrypted between browsers and the server.
Never run production workloads in GlobalForms without HTTPS. Use a certificate from a trusted certificate authority for any server that users or external systems reach.
This page applies to GlobalForms 10.7.1 and later. Earlier versions also required editing client\dist\config.js. That step is no longer needed.
How HTTPS works in GlobalForms
-
GlobalForms always listens for HTTP on port 3001.
-
When it finds a valid certificate and private key, it also listens for HTTPS on port 5454.
-
By default it looks for the certificate at
ssl\server.crtand the key atssl\server.keyin the install folder. You can point to other files inconfig\local.json. -
The
sslfolder andlocal.jsonare kept during updates, so you only set this up once.
Before you begin
-
Get a certificate for the host name users will use, for example
forms.example.com, from your certificate authority. You need:-
The certificate in PEM format (a text file that begins with
-----BEGIN CERTIFICATE-----, often named.crtor.pem). Include any intermediate certificates in the same file, after your server certificate. -
The private key in PEM format (begins with
-----BEGINand containsPRIVATE KEY, often named.key). -
The key's password, if the key is encrypted.
-
-
Make sure DNS for that host name points to the GlobalForms server.
-
Allow inbound traffic on the HTTPS port (5454 by default) in Windows Firewall and any network firewall.
Option 1: Use the default file names (simplest)
-
Rename your certificate file to
server.crtand your key file toserver.key. -
Copy both files into the
sslfolder in the install folder (C:\GlobalForms\sslby default). Create the folder if it does not exist. -
If the key is encrypted, add its password to
config\local.json:JSON{ "ssl": { "certPassword": "<Key password>" } } -
Set
domaininconfig\local.jsonto the HTTPS address users will use (see below). -
Restart the GlobalForms service.
Option 2: Point to certificate files in another location
-
Place the certificate and key files in a folder that the GlobalForms service can read, for example
C:\Certificates\GlobalForms. -
Add their locations to
config\local.json. Write each backslash twice:JSON{ "ssl": { "certPath": "C:\\Certificates\\GlobalForms\\forms.example.com.crt", "keyPath": "C:\\Certificates\\GlobalForms\\forms.example.com.key", "certPassword": "" } } -
Set
domainto the HTTPS address (see below). -
Restart the GlobalForms service.
You can also enter the certificate path, key path and password at the setup prompts when you install GlobalForms.
Set the server address and port
Update domain so it matches the HTTPS address users will use. To use the standard HTTPS port 443 instead of 5454, also change sslPort:
{
"domain": "https://forms.example.com",
"sslPort": 443
}
|
Setting |
Default |
Description |
|---|---|---|
|
|
|
The address users use to reach GlobalForms. Include the port if it is not 443. |
|
|
|
The HTTPS port. Make sure no other application on the server uses it. |
|
|
|
Certificate file (PEM) |
|
|
|
Private key file (PEM) |
|
|
(blank) |
Password for an encrypted private key |
Verify HTTPS
-
In a browser, open your HTTPS address, for example
https://forms.example.com:5454. -
Confirm the browser shows a secure connection with no certificate warning.
-
Sign in and open a form to confirm everything loads.
After HTTPS is working
-
Give users only the HTTPS address. GlobalForms sends a security header that tells browsers to keep using HTTPS for this host name, so browsers may refuse plain HTTP links to the same name after the first secure visit.
-
Update any links, bookmarks or integrations that point to the HTTP address, including GlobalCapture and any single sign-on redirect URLs.
-
Block the HTTP port (3001) at the firewall if nothing needs it.
Testing with a self-signed certificate
For a test server only, you can create a self-signed certificate. Browsers show a warning for self-signed certificates, so do not use one in production.
-
Install OpenSSL for Windows. The script looks for
opensslon thePATHor inC:\Program Files\OpenSSL-Win64. -
In PowerShell as administrator, run the following from the install folder:
PowerShellcd C:\GlobalForms node scripts\generate-ssl-cert.js --domain https://forms.example.comThis creates
ssl\server.crtandssl\server.key. -
Restart the GlobalForms service.
Renewing a certificate
Replace the certificate and key files with the renewed ones, keeping the same names and locations, then restart the GlobalForms service.
Troubleshooting
|
Symptom |
Cause and fix |
|---|---|
|
HTTP works but the HTTPS address does not respond |
GlobalForms could not load the certificate or key. Check the file paths, that the files are in PEM format, that the key password is correct, and that the service account can read the files. Then restart the service. |
|
HTTPS still does not respond |
Another application may be using the HTTPS port, or a firewall is blocking it. Choose a free |
|
The browser warns that the certificate is not trusted |
The certificate is self-signed, or the intermediate certificates are missing. Use a CA-issued certificate and include the intermediate certificates in the certificate file. |
|
The browser warns that the name does not match |
The address you used does not match the name on the certificate. Use the host name the certificate was issued for. |
|
The service stops after you edit |
The file is not valid JSON. Check that each backslash in a path is written twice. See Configuration Files. |
|
You have a |
Export the certificate and private key to PEM files first, using OpenSSL or the tools from your certificate authority. |