openssl s_client -connect customerdomain.tld:465 | openssl x509 -text
Schlagwort: ssl
Grafana Web-GUI über TLS mit Nginx
Einfach Config um eine Grafana Installation per Nginx über einen SSL Proxy abzusichern.
/etc/nginx/sites-enabled/grafana/
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name grafana.rzhas.de;
ssl_certificate /etc/ssl/rzhas/fullchain.pem;
ssl_certificate_key /etc/ssl/rzhas/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/grafana.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
proxy_redirect http://localhost:3000 https://grafana.rzhas.de;
}
}
SSL-Zertifikat für Fritz!Box
Eigenes SSL-Zertifikat aus xca für die Verwendung in einer Fritz!Box exportieren:
- PEM Kette (*.pem) des Zertifikats exportieren
- PEM privat (*.pem) des Privaten Schlüssels exportieren
- In Texteditor manuell zusammenfügen.
- Done.
IIS 6: SSL Host Headers für multiple SSL-Zertifikate mit einer IP-Adresse
Multidomain-Zertifikat installieren und für jede Website konfigurieren.
In C:\Inetpub\AdminScripts folgenden Befehl für jede Website ausführen:
cscript.exe adsutil.vbs set /w3svc/site identifier/SecureBindings ":443:host header"
site identifier: „Bezeichner“ (ID der Website)
host header: Hostname der jeweiligen Website, z. B. www.example.com, wie im Zertifikat hinterlegt.
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.
Permanent Redirect auf https in der Apache-Config
Regelmäßig stehe ich vor dem Problem, HTTP-Anfragen auf SSL HTTPS umzuleiten. Die einfachste Lösung ist der Einzeiler Redirect permanent / https://www.example.com. Wem dies genügt und wer ohne mod_rewrite auskommt, der kann hier mit dem Lesen aufhören.
Für meine Anwendungsfälle, habe ich hier eine minimalistische Apache V-Host Config hingepackt:
<Virtualhost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</Virtualhost>
Die drei Zeilen mit „Rewrite“ würden auch problemlos in eine .htaccess-Datei im DocRoot passen. Da besteht allerdings die Gefahr, dass der Webentwickler hier die Hände im Spiel hat und es ist (wenn auch nur minimal bei kleinen Webs oder wenigen V-Hosts) performanter.