Blogs

Here you can find a list of all my blogs published here.

  • Solving reverse proxy error ERR_CONTENT_DECODING_FAILED
    Configuring a reverse proxy is not an easy task. It involves some trial and error and dealing with unexpected errors. One of those errors is ERR_CONTENT_DECODING_FAILED. The web site won’t load in your browser and Chrome will show this error message: Error ERR_CONTENT_DECODING_FAILED may show up in your browser when a resource is configured on your reverse proxy, and the backend communication is working. That is: the backend is returning data, but not in a form the browser expects. Like: browser expects a GZIP response, but receives plain text. Therefore the hint content decoding failed. Content received, but the browser is not able to decode / understand the data. To solve this error, reset the Accept-Encoding request header in your…
    Continue reading »

  • Setup OpenVPN troubleshooting
    While setting up OpenVPN I came accross some common errors or workarounds that make life easier. To make it easier to remember these I have documented them in this blog. Maybe they are useful for others as well. Remove pass phrase In case you want to remove the pass phrase from the server key to make it easiert to start the OpenVPN server part, use the following command: mv server.key server.key.orig openssl rsa -in server.key.orig -out server.key You’ll have to enter one more time the pass phrase of the key, and then a new server.key file is written without the pass phrase. You can see this when looking into the key files. With pass phrase: Note: file starts with: BEGIN…
    Continue reading »

  • OpenVPN connection test
    After configuring and running both the OpenVPN server and client, it’s a good idea to test if the VPN is working. This involves some tests on both the server and client. OpenVPN Server Network Device After the server is started, a new interface should be created. Run ifconfig to get a list of all available interfaces. In case tun is configured in the conf file as device type, a new interface with name tun0 is created. ifconfig Check server log for client connection In case OpenVPN is started as a service, the log can be found at /var/log/messages. If you start it directly on the command line, the log will be shown on the shell. When a client connects, the…
    Continue reading »

  • Setup OpenVPN client on Raspberry Pi
    OpenVPN uses certificates to authenticate the server and clients. Therefore, the client needs to have a valid client certificate. This certificate needs to be issued by the CA server that also issued the certificate of the OpenVPN server. In my case, this server is installed together with the OpenVPN server on the AWS EC2 instance. The process to create the client certificate is the same as with the server certificate, only the certificate type must be client, or: TLS Web Client Authentication. This is done by specifying the client parameter in the generate certificate request command. Depending whether or not easy-rsa or any other tool to generate a certificate request is available on the client, the request can be generated…
    Continue reading »

  • Setup OpenVPN server on Amazon EC2
    Recently I got some new hardware that I will use to run some useful software. To use the software from anywhere, I’ll need to have remote access. As I cannot do DMZ or port forwarding with my new internet provider, I decided to connect my home server using VPN to a access machine running on AWS. The AWS EC2 Linux computer will serve as my entry point. Services running on the RP at home connected via VPN can be accessed from EC2. Other computers at my home cannot be accessed, as the IP is different and no route is configured. This setup comes with several architectural questions to solve: How to ensure the communication is secure? How to guarantee the…
    Continue reading »

  • Uncompressing a multi-part 7zip file in Debian
    7zip is a popular compression program for Windows. It allows to effectively compress files, split them into several archives and to add protection by using a password. This all works fine if you are a Windows user. In case you now want to extract such a multi part password protected file in Linux, you’ll find out that this isn’t a standard use case. Uncompressing these files involves some work. 7zip is not made available for Linux by the developer. Gzip or zip won’t work with 7zip compressed files. But: an unofficial version is available and it is possible to extract 7zip files in Debian/Linux. You have some options available for installing 7zip for Debian, like apt or by compilation. The…
    Continue reading »

  • Adjust image size of Docker qcow2 file
    Short version Increase image size by 100GB: qemu-img resize ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 +100G Resize partition: qemu-system-x86_64 -drive file=~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2  -m 512 -cdrom ~/Downloads/gparted-live-0.30.0-1-amd64.iso -boot d -device usb-mouse -usb Get an empty Docker.qcow2 image from my GitHub page and make your Docker use it: https://github.com/tobiashofmann/sap-nw-abap-docker How to adjust the Docker image size for using large containers like SAP NetWeaver ABAP Docker uses an image file to store Docker containers. The file is named Docker.qcow2 and is located (on Mac) at: ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 By default, the file can grow to a size of 64 GB. When you first start Docker, the size of this image is around 1.4GB. Adding containers, image, etc and it will grow to 64GB. The 64GB default size can be seen when…
    Continue reading »

  • xcrun: error: invalid active developer path
    Mac is a nice computer for developing, MacOS and Apple can make your developer life a challange. After updating XCode - after all, why have a Mac when you do not develop iOS apps - it may happen that git stops working. Running git gives you: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun Usual situation: it worked yesterday, today it is broken and you did nothing. Besides updating XCode. The problem occurs easily. When you update XCode, normally you also update the command line tools. In case the Apple App Store isn't giving you the option to update the command line tools, run the command xcode-select --install Output xcode-select: note: install requested for command line developer…
    Continue reading »

  • PowerLAN in real life
    I bought a PowerLan adaptor to be able to connect to my private "server" (aka Raspberry PI) from the other side of the house via WLAN. Connecting the RP via WiFi wasn't an option: two far away from the signal, I'd need to install at least one additional repeater and then two RP are without wireless adaptor. The PowerLan adaptor supports up to 1.200 MB/s and let's me connect 3 devices directly. I won't even need to buy an additional switch. And 1.200 MB/s. In theory, this is FAST. In reality the setup is complicated. The two adaptors are in the opposite location of a not-so-small house, the electrical stuff and cables were installed some 40 years ago. Some things…
    Continue reading »

  • UUIDD problem when running SAP NW ABAP inside Docker
    UUID is a good old problem when it comes to running SAP NetWeaver on Linux / SuSE. You have a problem when you log in to your SAP system and get an error message. The error message shows the root cause and solution: “The UUID daemon (uuidd) is not active (code 59999). Check SAP note 1391070.” Solution SAP NetWeaver isn’t meant to run in Docker. When the software was designed, Docker or event containerization wasn’t around (maybe SUN). NetWeaver assumes that it is executed inside a real Linux. And the Docker version of OpenSuSE isn’t 100% a real Linux. A lot of services you get “automatically” when installing OpenSuSE are not available. One of those is that the init.d system…
    Continue reading »