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

visiondrive4 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 Tananaev4 years ago

Try using standard JRE instead of the bundled one.

visiondrive4 years ago

Okay - how do I unbundle the included version?

Anton Tananaev4 years ago

You can specify Java location in the service configuration.

Anton Tananaev4 years ago

I mean Windows service configuration in your case.

visiondrive4 years ago

So install JRE and configure a JAVA path to use it

Anton Tananaev4 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.

shyy4 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"