Via Let’s Encrypt kun je geautomatiseerd HTTPS-certificaten aanvragen en installeren. In twee posts laat ik zien dat je dat ook voor TOPdesk kunt inregelen, binnen Linux. Je hoeft dan nooit meer na te denken over het vervangen van je certificaat!

Enige tijd geleden heb ik een forum gelanceerd voor TOPdesk applicatiebeheerders, om kennis en ervaring uit te wisselen. Dit forum draait op Discourse, een open source softwarepakket, in een Docker-container op een Linux-server in de cloud (voor maar een paar euros per maand, via Hetzner).

Zo’n pakket configureren is best leuk, vind ik. Als je kijkt naar de techniek, dan lijkt Discourse ook wel wat op TOPdesk. Beide pakketten bieden functionaliteit via je browser, via een webserver. Beide werken ook met accounts waarmee je inlogt, en in beide gevallen verbindt je met een database. Discourse heeft echter iets wat TOPdesk niet heeft: geautomatiseerd aanvragen en installeren van een HTTPS-certificaat via Lets Encrypt. Dat werkt supergoed; het TOPdesk-forum heeft de hoogst mogelijke rating A+ op de SSL Server test van SSL Labs. En het is nog gratis ook.

Hoe moeilijk kan het zijn om dit ook op TOPdesk werkend te krijgen? Dat is wat ik in drie blogposts ga onderzoeken. Het plan is om dit als Proof of Concept uit te werken. Dat betekent dat ik niet elk detail uitgebreid bespreek, en dat ik bepaalde onderwerpen, zoals het koppelen van een database, gewoon oversla.

Maar eerst: TOPdesk op Linux

Linux is mijn voorkeurs-OS voor applicaties zoals TOPdesk. TOPdesk draait al sinds jaar en dag op Linux, en het doet absoluut niet onder voor Windows. Het is al een jaar geleden dat TOPdesk heeft aangekondigd dat de on-premise versie van TOPdesk alleen nog maar zal worden aangeboden als Virtual Appliance (link). Dit is een virtuele machine waarop Linux draait, die je vervolgens met wat kunstgrepen moet gaan inbedden in je eigen (Windows) IT-infrastructuur. Dit betekent in feite dat Linux de standaard OS wordt waarop de on-premise versie van TOPdesk draait. Met wat vrije tijd kun je trouwens ook zelf een TOPdesk Virtual Appliance in elkaar zetten (link, link, en link).

De reden voor een virtuele machine met Linux is dat TOPdesk vanaf een zeker moment een nieuwe architectuur krijgt, met “services”. Dat zou in een Docker-container moeten worden aangeboden, en dat werkt niet altijd in Windows-omgevingen. Zelf heb ik overigens de Virtual Appliance van juni 2019 getest, in Oracle Virtualbox. Hier is nog geen Docker of nieuwe architectuur te bekennen; TOPdesk is  geïnstalleerd op de “normale” manier. Wel zijn er allerlei scripts gemaakt die configuratie vergemakkelijken. Daarnaast draait NGINX als reverse proxy binnen de VM.

Wat hebben we nodig?
  • Een domeinnaam.
  • Een server. Hetzner biedt voor 4,90 per maand een server aan die voldoet aan de eisen van TOPdesk (2 CPU en 4 GB RAM)
  • Kennis van Linux. Deze handleiding is namelijk niet uitputtend. De beoogde doelgroep van dit document is daarom mensen met voldoende Linux-kennis.
Software installeren

Heb je eenmaal een server in de cloud, dan start je met het installeren van Linux. Hierover zijn genoeg goede handleidingen voor te vinden, dus daar weid ik verder niet over uit. Heb je eenmaal Linux draaien? Start dan met het installeren van de benodigde software: java, TOPdesk, een firewall (uncomplicated firewall gebruik ik, kort ufw), en een database.

Paar aandachtspunten:

  • Op Extranet vind je welke Java-versie wordt aangeraden. In de laatste virtual appliance draait 11.0.3, dus die gebruik ik ook.
  • Je moet X window forwarding gebruiken om TOPdesk via de normale installatiewizard op een remote Linux-machine via SSH te installeren.
  • Installeer Microsoft SQL als database en niet Oracle. TOPdesk stopt namelijk binnenkort met de ondersteuning van Oracle. Klik hier voor de installatiehandleiding van Microsoft SQL op Linux.
  • Voor het koppelen van de database gebruik je ofwel de databasetool van TOPdesk, ofwel het commando sqlcmd. Deze handleiding gaat hier echter niet verder op in.
Automatisch opstarten

De volgende systemd servicefile maakt het mogelijk om TOPdesk automatisch te starten:

/etc/systemd/system/topdesk.service

[Unit] Description=TOPdesk service Requires=mssql-server.service After=syslog.target network.target mssql-server.service [Service] Type=forking PIDFile=/opt/TOPdesk/TOPdesk.pid ExecStartPre=/usr/bin/waitforsql ExecStart=/opt/TOPdesk/topdesk start ExecStop=/opt/TOPdesk/topdesk stop RemainAfterExit=yes [Install] WantedBy=multi-user.target

De systemd servicefile roept het script /usr/bin/waitforsql aan dat ervoor zorgt dat TOPdesk niet al start voordat Microsoft SQL helemaal is gestart:

/usr/bin/waitforsql

#!/bin/bash while netstat -lnt | awk '$4 ~ /:1433$/ {exit 1}'0 do sleep 1 done
What’s next?

In de volgende post leg ik uit hoe je de firewall en de webserver van TOPdesk configureert, zodat je via Lets Encrypt je certificaten kunt opvragen en installeren.


Rogier Visser

Rogier is zelfstandig TOPdesk-consultant en oprichter van Laansloot IT