Andon proxy HTTPS Support¶
Overview¶
Andon proxy HTTPS support defines the process for generating a Transport Layer Security (TLS) certificate (tls.crt) and a private key (tls.key) using OpenSSL. These files are essential for enabling HTTPS on your application. The guide covers certificate generation, Subject Alternative Name (SAN) verification and deployment steps.
Self-Signed Certificate Considerations
Self-signed certificates provide encryption but are not inherently trusted by web browsers or operating systems. Users will typically encounter a security warning unless the certificate is explicitly imported into their system's trusted root certification authorities.
Prerequisites¶
Windows 11¶
- Navigate to https://git-scm.com/download/win.
- Download and run the installer. Accept the default installation options, ensuring that "Git from the command line and also from third-party software" is selected to make OpenSSL available in your path.
- Verify OpenSSL Installation:
- Open a command prompt or Git Bash.
-
Execute the following command:
openssl version
Linux Server¶
-
Check OpenSSL Installation:
- Open a terminal.
-
Execute the following command:
openssl version -
If OpenSSL is installed, its version will be displayed.
-
Install OpenSSL (if not present):
-
Debian/Ubuntu:
sudo apt-get update sudo apt-get install -y openssl ca-certificates -
RHEL/CentOS/Fedora:
sudo yum install -y openssl ca-certificates || sudo dnf install -y openssl ca-certificates -
SUSE:
sudo zypper install -y openssl ca-certificates
-
Configuration Templates (DNS vs IP)¶
Choose one of the following templates based on how clients reach your server:
# Option A: Use a DNS hostname (clients connect via name)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = State
L = City
O = Organization
OU = Department
CN = di2inpun6769wv0.net.plm.eds.com
[v3_req]
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = di2inpun6769wv0.net.plm.eds.com
Pick ONE template:
- Use DNS (Option A) if users access via hostname (recommended).
- Use IP (Option B) only if there is no DNS name. SAN must use
IP.Xentries.
Configuration Templates (DNS vs IP) — Option B (IP)¶
Use Option B when clients connect by IP (no DNS name). Replace 192.168.1.100 with your server IP.
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = State
L = City
O = Organization
OU = Department
# The Common Name (CN) can be your server's IP address
CN = 192.168.1.100
[v3_req]
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
# CRITICAL: For IP addresses, you MUST use IP.X instead of DNS.X
IP.1 = 192.168.1.100
Create a new file named server.cnf and replace 192.168.1.100 with your actual server IP.
Key Terminology¶
-
CN (Common Name): The primary identity of the certificate (FQDN). Example:
di2inpun6769wv0.net.plm.eds.com. -
OU (Organizational Unit): Department or team identifier (e.g., IT, R&D, DevOps) for administrative tracking.
-
SAN (Subject Alternative Name): Required by modern clients, must include all hostnames used to reach the service.
Execution Steps (Certificate Generation)¶
-
Open Git Bash in your working folder.
-
Run the following command to generate
tls.crtandtls.key:openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout tls.key \ -out tls.crt \ -config san.cnf \ -extensions v3_reqOutput files created:
- tls.crt — public certificate.
- tls.key — private key. Keep this file secret and restrict file permissions.
Verification¶
Confirm the SAN contains your hostname:
openssl x509 -in tls.crt -text -noout | grep -A 1 "Subject Alternative Name"
DNS:di2inpun6769wv0.net.plm.eds.com Deployment Instructions¶
-
Navigate to the application deployment directory (where the installation package was extracted).
-
Copy files and place
tls.crtandtls.keyintodeployment\certs\sub-folder. -
From the root of the deployment folder, run
start-deployment.bat. -
When the script completes, the application should be accessible over HTTPS.
Trusting the Certificate (Client Side)¶
To avoid "Not Secure" browser warnings, every computer that needs to access the application must trust the certificate.
Follow these steps on the client computer:
-
Double-click the tls.crt file.
-
Click "Install Certificate".
-
Select Local Machine and click Next.
-
Select Place all certificates in the following store.
-
Click Browse and select Trusted Root Certification Authorities.
-
Click OK, Next and Finish.
-
Restart your browser to apply the changes.
Troubleshooting & Tips¶
-
Hostname mismatch warnings: Ensure CN and SAN exactly match the hostname clients use (include additional SAN entries if you support multiple hostnames).
-
Key permissions: Limit read access to tls.key to the service account or administrators only.
-
Certificate lifetime: The command above issues a 365-day certificate. Reissue before expiry or adjust -days as needed.
Reference Commands¶
| Purpose | Command | Notes |
|---|---|---|
| Check OpenSSL version | openssl version | Verifies OpenSSL is available in PATH |
| Generate key and cert | openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout tls.key -out tls.crt -config san.cnf -extensions v3_req | Creates tls.key and tls.crt using SAN from san.cnf |
| Inspect certificate SAN | openssl x509 -in tls.crt -text -noout grep -A 1 "Subject Alternative Name" | Confirms DNS entry matches expected hostname |