Illegal Character in Scheme Name When Setting Keystore Path
Symptoms
When attempting to enable the SSL connector on Tomcat Server.xml file, the following appears in catalina.out during the startup:
SEVERE [main] org.apache.tomcat.util.net.SSLUtilBase.getStore Failed to load keystore type [JKS] with path [?C:\ConfluenceKeystore] due to [Illegal character in scheme name at index 0: ?C:\ConfluenceKeystore]
java.lang.IllegalArgumentException: Illegal character in scheme name at index 0: ?C:\ConfluenceKeystore
Cause
The Keystore path contains a non-printable unicode character which does not appear when editing the server.xml file. Copying the line and testing for invisible characters returned this result:
On this example, the U+202A unicode character was inserted before the path which caused the issue. The OS interpreted that unicode character and it was invisible when editing the server.xml file. You can use a tool or website to check for invisible unicode characters like https://www.soscisurvey.de/tools/view-chars.php for example.
Resolution
- Open the server configuration file located here: <
CONFLUENCE-INSTALL>/conf/server.xml. Make a backup copy of the file for precaution.
Check for any invisible character in the server.xml file and remove it.
Save the server.xml file.
- Restart Confluence to apply the changes.