Hallo liebes Computerbase-Forum,
momentan versuche ich einen Webserver mittels "nginx" zu installieren und mit Letsencyrpt die nötigen SSL Zertifkate zu generieren.
Dabei bin ich nun auf das Problem gestoßen, dass ich nach Bearbeitung meiner nginx - Konfiguration keinen Zugriff mehr mit folgenden Browsern auf den Webserver habe:
Google Chrome: "ERR_SPDY_PROTOCOL_ERROR"
Internet Explorer und Microsoft EDGE: "Die Verbindung mit der Website wurde zurückgesetzt. INET_E_DOWNLOAD_FAILURE"
Mit Mozilla Firefox kann ich alles, ohne weitere Probleme, aufrufen.
(getestet auf mehreren Geräten und unabhängigen Netzwerken)
Die Konfiguration meines Nginx-Server sieht wie folgt aus:
/etc/nginx/conf.d/default_vhost.conf
/etc/nginx/conf.d/default_letsencrypt.conf
/etc/nginx/sites-available/default
Kennt eventuell jemand den Ursprung des Problems?
Habe ich etwas bei der nginx-Konfiguration falsch gemacht?
Über jegliche Hilfe und Tipps würde ich mich sehr freuen.
Mit freundlichen Grüßen
iDome
momentan versuche ich einen Webserver mittels "nginx" zu installieren und mit Letsencyrpt die nötigen SSL Zertifkate zu generieren.
Dabei bin ich nun auf das Problem gestoßen, dass ich nach Bearbeitung meiner nginx - Konfiguration keinen Zugriff mehr mit folgenden Browsern auf den Webserver habe:
- Safari
- Google Chrome
- Internet Explorer
- Microsoft EDGE
Google Chrome: "ERR_SPDY_PROTOCOL_ERROR"
Internet Explorer und Microsoft EDGE: "Die Verbindung mit der Website wurde zurückgesetzt. INET_E_DOWNLOAD_FAILURE"
Mit Mozilla Firefox kann ich alles, ohne weitere Probleme, aufrufen.
(getestet auf mehreren Geräten und unabhängigen Netzwerken)
Die Konfiguration meines Nginx-Server sieht wie folgt aus:
/etc/nginx/conf.d/default_vhost.conf
Code:
server {
listen 84;
server_name 127.0.0.1;
# Add headers to serve security related headers Use
# 'proxy_set_header' (not 'add_header') as the headers have to be
# passed through a proxy.
proxy_set_header Strict-Transport-Security "max-age=15768000;
includeSubDomains; always;";
proxy_set_header X-Content-Type-Options "nosniff; always;";
proxy_set_header X-XSS-Protection "1; mode=block; always;";
proxy_set_header X-Robots-Tag none;
proxy_set_header X-Download-Options noopen;
proxy_set_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /var/www/html;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location /.well-known/acme-challenge { }
}
/etc/nginx/conf.d/default_letsencrypt.conf
Code:
server {
listen 127.0.0.1:83;
server_name 127.0.0.1;
location ^~ /.well-known/acme-challenge {
default_type text/plain;
root /var/letsencrypt;
}
}
/etc/nginx/sites-available/default
Code:
server {
listen 80 default_server;
server_name meine-domain.tld 192.169.178.129;
root /var/www/html;
location ^~ /.well-known/acme-challenge {
proxy_pass http://127.0.0.1:83;
proxy_redirect off;
}
location / {
# Enforce HTTPS Use this if you always want to redirect
# to the DynDNS address (no local access).
return 301 https://$server_name$request_uri;
# Use this if you also want to access the server by
#local IP: return 301 https://$server_addr$request_uri;
}
}
server {
listen 443 ssl http2;
server_name meine-domain.tld 192.168.178.129;
#
# Configure SSL
#
ssl on;
# Certificates used
ssl_certificate /etc/letsencrypt/live/meine-domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meine-domain.tld/privkey.pem;
# Not using TLSv1 will break:
# Android <= 4.4.40 IE <= 10 IE mobile <=10
# Removing TLSv1.1 breaks nothing else!
ssl_protocols TLSv1.2;
# Using the recommended cipher suite from:
# https://wiki.mozilla.org/Security/Server_Side_TLS
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
# Diffie-Hellman parameter for DHE ciphersuites, recommended
# 2048 bits ssl_dhparam /etc/nginx/ssl/dhparams.pem;
# Specifies a curve for ECDHE ciphers. High security, but will
#not work with Chrome: ssl_ecdh_curve secp521r1;
# Works with Windows (Mobile), but not with Android (DavDroid):
#ssl_ecdh_curve secp384r1;
# Works with Android (DavDroid):
ssl_ecdh_curve prime256v1;
# Server should determine the ciphers, not the client
ssl_prefer_server_ciphers on;
# OCSP Stapling fetch OCSP records from URL in ssl_certificate
# and cache them
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate
/etc/letsencrypt/live/meine-domain.tld/fullchain.pem;
resolver 192.168.178.1;
# SSL session handling
ssl_session_timeout 24h;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
#
# Add headers to serve security related headers
#
# HSTS (ngx_http_headers_module is required) In order to be
# recoginzed by SSL test, there must be an index.hmtl in the
# server's root
add_header Strict-Transport-Security "max-age=63072000;
includeSubdomains" always;
add_header X-Content-Type-Options "nosniff" always;
# Usually this should be "DENY", but when hosting sites using
# frames, it has to be "SAMEORIGIN"
add_header Referrer-Policy "same-origin" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
location = / {}
}
Kennt eventuell jemand den Ursprung des Problems?
Habe ich etwas bei der nginx-Konfiguration falsch gemacht?
Über jegliche Hilfe und Tipps würde ich mich sehr freuen.
Mit freundlichen Grüßen
iDome