Traccar Server Update to 4.9 -reports SSL handshake issue and hangs (stays in starting state).

visiondrive 5 years ago

Am using Windows and the reverse proxy to get the https redirect but upon startup of 4.9 it hangs (note cannot be stopped or killed - requires system reboot to resolve) and this is all that is present in the log file. Was running 4.6 prior to 4.9 install.

2020-07-13 14:06:00  INFO: HikariPool-1 - Starting...
2020-07-13 14:06:01  WARN: Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.

2020-07-13 14:06:11 ERROR: HikariPool-1 - Exception during pool initialization. - Received fatal alert: handshake_failure - SSLHandshakeException (... < DataManager:139 < *:89 < Context:292 < Main:137 < ...)

2020-07-13 14:06:11 ERROR: Main method error - Received fatal alert: handshake_failure - SSLHandshakeException (... < DataManager:139 < *:89 < Context:292 < Main:137 < ...)

2020-07-13 14:06:11  WARN: JNA: Callback org.traccar.WindowsService$ServiceMain@10289886 threw the following exception - Received fatal alert: handshake_failure - SSLHandshakeException (... < DataManager:139 < *:89 < Context:292 < Main:137 < ...)

web.config was not updated by 4.9 installation and looked like below:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <outboundRules>
                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
                    <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8082/(.*)" />
                    <action type="Rewrite" value="http{R:1}://mysite.com.au/{R:2}" />
                </rule>
                <rule name="ReverseProxyOutboundRule2" preCondition="ResponseIsHtml1">
                    <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8082/(.*)" />
                    <action type="Rewrite" value="http{R:1}://mysite.com.au/{R:2}" />
                </rule>
                <preConditions>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                    </preCondition>
                </preConditions>
            </outboundRules>
            <rules>
                <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8082/{R:1}" />
					<serverVariables>
						<set name="HTTP_SEC_WEBSOCKET_EXTENSIONS" value="" />
					</serverVariables>
                </rule>
				<rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
					<match url="(.*)" />
					<conditions>
						<add input="{HTTPS}" pattern="^OFF$" />
					</conditions>
					<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
				</rule>
				<rule name="ReverseProxyInboundRule2" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8082/{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <urlCompression doStaticCompression="false" doDynamicCompression="false" />
    </system.webServer>
</configuration>        
Anton Tananaev 5 years ago

Try using standard JRE instead of the bundled one.

visiondrive 5 years ago

Okay - how do I unbundle the included version?

Anton Tananaev 5 years ago

You can specify Java location in the service configuration.

Anton Tananaev 5 years ago

I mean Windows service configuration in your case.

visiondrive 5 years ago

So install JRE and configure a JAVA path to use it

Anton Tananaev 5 years ago

You have to configure the path for "traccar" windows service. You should be able to use SC.exe command line tool for that.

shyy 5 years ago

Install Java for windws repositories

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Navigate to the service, then modify the image name to reflect the new path

As always, make a backup of the system PRIOR.

orig

C:\Program Files\Traccar\jre\bin\java.exe -Duser.dir="C:\Program Files\Traccar" -jar "C:\Program Files\Traccar\tracker-server.jar" --service ".\conf\traccar.xml"

replace

C:\Program Files\Java\jre1.8.0_241\bin\java.exe -Duser.dir="C:\Program Files\Traccar" -jar "C:\Program Files\Traccar\tracker-server.jar" --service ".\conf\traccar.xml"