====== Certificates ====== ==== Generating a certificate manually ==== * [[..:userguide:administration:adminconfig:createcertificat|Follow the procedure here]] ==== SAN (Subject Alternative Name) issues ==== Browsers will reject certificates if the hostname used does not appear in the SAN list Symptoms: * Chrome: **NET::ERR_CERT_COMMON_NAME_INVALID** * Firefox: **MOZILLA_PKIX_ERROR** Check SAN: * In browser: Certificate → Details → ''Subject Alternative Name''. * From console: openssl x509 -in server.crt -text -noout | grep -A1 ''Subject Alternative Name'' === Fixing SAN problems === * **Regenerate certificate** with correct **SAN** values * Add this to your generate certificat ''-ext SAN=DNS:hostname,IP:serverIP'' ---- ==== CA and chain issues ==== Even with a certificate signed by a valid CA, the application may serve only the server certificate, without the intermediate CA Browsers then reject the connection because the chain is incomplete Symptoms: * Chrome: **ERR_CERT_AUTHORITY_INVALID** * Firefox: **MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT** * openssl s_client -showcerts shows only **ONE certificate** * keytool -list -v shows: ''Certificate chain length: 1'' Cause: * Java keystore contains: - PrivateKeyEntry: server certificate only - trustedCertEntry: CA and intermediates * Redpeaks does NOT assemble the chain automatically * The chain MUST be stored inside the PrivateKeyEntry === Detecting the problem === Check what Redpeaks is sending: openssl s_client -connect hostname:8443 -showcerts Check keystore: keytool -list -v -keystore .keystore -alias If chain length = 1, this mean the chain is incomplete === Fixing chain problems === Convert CER to PEM if necessary: openssl x509 -inform DER -in file.cer -out file.crt Build chain: cat intermediate.crt root.crt > chain.pem Build PKCS12 containing key + certificate + full chain: openssl pkcs12 -export -inkey server.key -in server.crt -certfile chain.pem -name pro_monitor -out fullcert.p12 Import into Redpeaks keystore: keytool -importkeystore -srckeystore fullcert.p12 -srcstoretype PKCS12 -srcstorepass agentilKeyStore \ -destkeystore [REDPEAKS_HOME]/certificates/.keystore -deststoretype JKS -deststorepass agentilKeyStore Verify: keytool -list -v -keystore [REDPEAKS_HOME]/certificates/.keystore -alias tomcat -> Now Certificate chain length should be 2 or 3 === CA trust on client side === Even with a complete chain, clients must trust the CA root * On Windows (Chrome / Edge): * Ensure your CA root is installed under: ''Trusted Root Certification Authorities'' * On Firefox: * Open Settings -> Privacy & Security -> Certificates -> View Certificates -> ''Authorities'' * Import the CA root and mark it as trusted to identify websites If the CA root is missing on the client, browsers will still show ERR_CERT_AUTHORITY_INVALID or equivalent, even if the server is correctly configured