Autor: Sandro Kehrlein

Apache: Umleitung auf verschlüsselte Standard-Domain

Nachdem Marco schon seine Apache-Config zur Umleitung von HTTP-Aufrufen auf HTTPS vorgestellt hat, schließe ich mich gerne an und biete ich eine .htaccess-Alterative:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.example.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

RewriteCond %{SERVER_PORT} !^443
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
  • Alle Domains, die auf den Webspace zeigen, werden mittels Permanent Redirect (HTTP-Status 301) auf die Default-Domain, hier https://www.example.com, umgeleitet.
  • Dadurch wird „duplicate content“ (also die Erreichbarkeit ein und derselben Website über mehrere Domains) vermieden. Stickwort SEO.
  • Alle Aufrufe werden auf HTTPS umgeschrieben. Die Website kann de facto nicht mehr unverschlüsselt aufgerufen werden.
  • Ein eventuell angegebener Pfad bleibt sowohl beim Umschreiben der Domain, als auch bei der Umleitung auf HTTPS erhalten. So wird zum Beispiel http://example.net/folder/file.html auf https://www.example.com/folder/file.html umgeschrieben.

Bash Shortcuts / Tastenkombinationen

Shortcut Beschreibung
Ctrl + a zum Zeilenanfang springen
 Ctrl + e  zum Zeilenende springen
Alt + b  ein Wort nach links springen
 Alt + f ein Wort nach rechts springen
 Ctrl + w Wort links vom Cursor löschen
 Alt + d  Wort rechts vom Cursor löschen
 Ctrl + u  vom Cursor bis zum Zeilenanfang löschen
 Ctrl + k vom Cursor bis zum Zeilenende löschen
 Alt + .  letztes Argument einfügen
 …

Bestimmte Zeichen in Microsoft Word suchen und ersetzen

In einer Word-Datei wurde das Geschützte Leerzeichen fälschlicherweise als anderes Sonderzeichen eingefügt. Eine manuelle Korrektur des Zeichens war auf Grund der großen Anzahl nicht möglich, so dass das fehlerhafte Zeichen unter anderem bei Zahlen automatisch ersetzt werden musste.

Im abgebildeten Beispiel sollte als Tausendertrennzeichen an Stelle des Sonderzeichens ein Punkt eingefügt werden. Hierzu muss zuerst unter „Erweitern“ die Option „Platzhalter verwenden“ aktiviert werden. Die Suche nach

([0-9])SONDERZEICHEN([0-9])

sucht also nach exakt einer Ziffer, gefolgt vom SONDERZEICHEN, gefolgt von einer weiteren Ziffer. Mittels

\1.\2

wird der aufgefundene String durch die erste gefundene Ziffer, das gewünschte (neue) Zeichen – in diesem Fall der Punkt – und die zweite gefundene Ziffer ersetzt.

 

 

macOS: Unsichtbare Zertifikate aus der Keychain löschen

In gewissen Situation kommt es vor, dass Apples Keychain („Schlüsselbund“) Zertifikate nicht mehr anzeigt, obwohl sie im System vorhanden sind. Problematisch ist dies, wenn bspw. ein altes Zertifikat gelöscht und durch ein neues ersetzt werden soll. In meinem akuten Fall ging es um den Austausch des Root-Zertifikats einer lokalen CA (Certificate Authority). Das alte Zertifikat wurde nicht angezeigt und ein Import des neuen, auf den gleichen Namen lautenden Zertifikats schlug ohne Angabe von Gründen fehl.

Wenn der Name des nicht mehr dargestellten Zertifikats bekannt ist, lässt sich dieses über das Command Line Interface löschen. Für Zertifikate in der Keychain „System“:

sudo security delete-certificate -c "Zertifikatsname" -t /Library/Keychains/System.keychain

Oder bei Zertifikaten, die im Schlüsselbund „login“ eines Benutzers abgespeichert wurden:

sudo security delete-certificate -c "Zertifikatsname" -t /Users/Benutzername/Library/Keychains/login.keychain

Ein neues Zertifikat kann zum Beispiel mittels

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain neues_zertifikat.crt

in die Systems-Keychain (so dass es von allen Benutzern des Rechners genutzt werden kann) importiert werden.

mysqldump nach Wechsel auf mariadb-client sichert nicht mehr

Nach einem kurzfristigen Wechsel von mysql-client-5.x auf mariadb-client-10.x (via default-mysql-client) auf Debian Stretch wollte mysqldump keine Daten eines MySQL-Servers (5.1.73-1) mehr sichern:

root@backup:/backup/# mysqldump -h server1 -u backup -p -v database1
Enter password:
-- Connecting to server1...
-- MySQL dump 10.16 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: server1 Database: database1
-- ------------------------------------------------------
-- Server version 5.1.73-1


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- Retrieving table structure for table table1...
-- Skipping dump data for table 'table1', it has no fields

Ursache ist das in /etc/mysql/mariadb.conf.d/50-client.cnf angegebene Character-Set utf8mb4, welches nach dem Paketwechsel standardmäßig verwendet wird und den früheren Standardwert des mysql-client-Paketes (utf8) ablöste:

[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4

Da der zu sichernde MySQL-Server utf8mb4 nicht unterstützt,  führte die Änderung von default-character-set auf utf8 zur Lösung und nun wieder vollständigen Datenbank-Backups mittels mysqldump.

Der eingangs genante Paketwechsel erwies sich also als recht tückisch, da ab diesem Zeitpunkt keine MySQL-Backups mehr erzeugt wurden, die Sicherung jedoch keinerlei Fehler aufzeigte. Das Backupskript lief erfolgreich durch und es wurden stets neue Backupfiles erzeugt, jedoch alle Tabellen beim Sichern der Inhalte übersprungen („Skipping dump data…“). Nur durch ein manuelles Prüfen der erzeugten Backupfiles fiel auf, dass das Backup nicht mehr funktionsfähig war.

macOS: Alte Netzwerkfreigaben entfernen

Freigaben von Dateien und Ordnern werden bei macOS in den Systemeinstellungen unter FreigabenDateifreigabe verwaltet. War eine Freigabe auf einer Festplatte eingerichtet, die bspw. auf Grund eines Defekts ausgetauscht wurde, wird diese Freigabe in der Übersicht nicht mehr dargestellt.

Eine neue Freigabe eines gleichnamigen Ordners kann zwar wieder eingerichtet werden, der Name der Netzwerkfreigabe wird jedoch um „-1“ ergänzt, da die ursprüngliche Freigabe im System noch vorhanden und der Name „belegt“ ist – obwohl die Freigabe eben nicht mehr in den Systemeinstellungen angezeigt wird. Der Freigabename wird bei macOS nirgends in der grafischen Oberfläche angezeigt und kann folglich auch nicht verändert werden. Dies ist besonders dann hinderlich, wenn aus dem Netzwerk auf den bisherigen Namen des Netzlaufwerk zugegriffen werden soll und Rechner, Programme oder Skripte, welche die Freigabe nutzen, nicht angepasst werden sollen.

Abhilfe schafft der Befehl sharing, welcher mit der Option -l alle im System angelegten und auch ehemaligen Freigaben anzeigt. Mit -r <name> können Freigaben entfernt werden.

Löscht man also beispielsweise eine ehemalige, verwaiste Freigabe „Daten“ mit sudo sharing -r Daten, kann anschließend in den Systemeinstellungen wieder eine Freigabe mit gleichem Namen erstellt werden.